Ios外围设备在背景中

我们需要在我们的项目中检测正在运行使用蓝牙LE的自定义APP的iPhone的接近程度。

检测器(扫描仪,中央…)将使用BLE集成电路(来自德克萨斯州或北欧)实施。 我的意思是,扫描仪不是另一个IOS设备…运行核心蓝牙作为中央..

对于探测器来猜测邻近度,这个想法是非常简单的,只是宣传一个UUID专有的服务。

在前台工作正常,UUID和本地名称被通告(主通告数据包中的UUID,以及SCAN响应数据包中的本地名称….),我们的扫描器能够决定这个iOS设备运行我们的应用程序。

出现背景时出现问题

iOS停止广播UUID和本地名称。 (作为核心蓝牙解释文件…我知道…)

此时(后台),IOS开始在主通告数据包中广播一个SPECIAL MANUFACTURER DATA,而在SCAN Response数据包中没有任何数据)

我们使用蓝牙嗅探器看到的数据包是:

0x14(不包括这个字节的数据包的长度)。 0xFF(制造商特定的数据ADtypes)。

接着 :

0x4C,0x00(如果数据包符合BLE 4.0规范,则此数据为制造商标识符)。 0x01,0x00,0x00,0x00,0x00,0x00,0x80,以及十个0x00多….

我知道苹果公司说,在后台只有一个IOS设备search特定的服务可以发现它。 (真的我不知道他们怎么做到这一点,除非他们连接到外设和检索服务,或者如果外设知道其他IOS设备正在扫描,因为它在扫描请求中的地址,然后改变广告数据在后台)。

主要问题是:

有什么文件或知识这个制造商的数据意味着….也许这将是可能的扫描器知道这个信息的基础上,这是一个iOS设备在后台广告,然后连接看,如果定制服务是在那里。 (不是一个快速和干净的解决scheme…但我没有看到任何其他的解决方法….)

有没有人与这种情况下工作…并find一个干净的解决scheme…..

我听到有人强迫申请不要背景。

这个限制,将会阻止很多可能的项目。