CoreBluetooth Central Manager无法在后台发现外围设备

时间:2013-08-23 21:15:13

标签: ios bluetooth background-process core-bluetooth bluetooth-lowenergy

我有一个使用蓝牙4.0 LE的应用程序。该应用程序允许设备充当中央和外围设备。

我希望应用程序在后台运行。我已经在info.plist中包含了带有“bluetooth-central”和“bluetooth-peripheral”的UIBackgroundModes。

我在两台启用了蓝牙4.0 LE的设备上运行该应用程序。

当两个设备都在前台运行时,一切都运行良好,信息双向传递。

当一台设备在前台运行而另一台设备在后台运行时,在后台运行的设备可以扫描和通告,但无法发现在后台运行的其他设备。在前台运行的设备能够发现并连接到后台运行的设备。

通过Apple's Core Bluetooth Programming Guide阅读后,我知道可以连接到另一台设备并以两种方式共享信息。

我可以根据要求发布更多信息。谢谢。

1 个答案:

答案 0 :(得分:8)

外围设备应用程序背景时,广告服务将被推送到“溢出区域”,并且根本不会公布外围设备名称。另外,提高了广告间隔。理论上,iOS BLE堆栈应该处理这种情况并请求溢出区域数据,但它不会这样做。同时,后台中央上的扫描速度也会降低,此外还需要特定的服务UUID才能工作。 (您无法在后台使用nil服务进行扫描)

因此,扫描背景中央的背景设备是不可能的

这是一个错误或功能,只有Apple知道。打开雷达告诉他们你的问题。我们做得越多,就越有可能得到回应。