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

tag*_*bek 10 bluetooth background-process ios core-bluetooth bluetooth-lowenergy

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

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

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

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

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

通过Apple的核心蓝牙编程指南阅读后,我知道可以连接到另一台设备并以两种方式共享信息.

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

all*_*rog 8

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

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

这是一个错误或功能,只有Apple知道.打开雷达告诉他们你的问题.我们越多人这样做,我们获得回应的机会就越大.