背景技术中的Ios外围设备

时间:2014-01-22 13:28:03

标签: ios bluetooth-lowenergy core-bluetooth

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

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

为了让探测器猜测接近度,这个想法非常简单,只需宣传一个UUID专有的服务。

虽然在前台所有工作正常,并且广告了UUID和本地名称(主广告包中的UUID,以及SCAN响应包中的本地名称......),我们的扫描仪能够决定如果这个iOS设备正在运行我们的应用程序。

问题出现在背景.....

iOS停止广播UUID和本地名称。 (正如Core Bluetooth解释说明......我知道......)

此时(背景),IOS开始在主广告包中广播特殊制造商数据,SCAN响应包中没有任何内容)

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

0x14(不包括此字节的数据包长度)。 0xFF(制造商特定数据AD类型)。

然后:

0x4C,0x00(如果数据包符合BLE 4.0规范,则此数据是制造商标识符)。 0x01,0x00,0x00,0x00,0x00,0x00,0x80和10 0x00多....

我知道Apple说在背景中只有另一个IOS设备搜索特定服务可以发现它。 (实际上我不知道他们如何实现这一点,除非他们连接到外围设备并检索服务,或者外围设备知道其他IOS设备正在扫描,因为它是SCAN REQUEST中的地址然后更改广告数据在背景中。)

主要问题是:

是否有任何关于此制造商数据含义的文档或知识....也许扫描仪可以根据此信息知道这是iOS设备在后台广告然后连接以查看是否自定义服务就在那里。 (不是一个快速而干净的解决方案......但我没有看到任何其他解决方法....)

有没有人使用过这种情况......并找到了一个干净的解决方案......

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

此限制将阻止许多可能的项目。

0 个答案:

没有答案