当应用程序在后台或手机处于锁定状态时,iOS BLE外设扫描

时间:2016-10-18 12:42:20

标签: ios bluetooth-lowenergy

目前使用的应用程序需要对背景进行背景扫描。我们需要在初始化外围设备扫描时允许复制密钥。

我写了一个示例应用程序来试验这个。我在我的应用程序中启用了有限状态运行的后台功能。我发现当app是后台时,发现外设委托方法中的命中数非常少。手机处于锁定状态时甚至更少。并且对于相同的应用状态,命中数在不同时间是不同的。此外,我们注意到当手机处于锁定屏幕或应用程序处于后台时启动连接时出现问题。

这是预期的行为吗?我错过了什么吗?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

文档说:

  

当您的iOS应用处于后台或处于暂停状态时,其蓝牙   相关能力受到影响。 [...]即使您声明[后台执行模式中的一个或两个],某些蓝牙任务在您的应用程序处于后台时也会以不同方式运行。您希望在设计应用时考虑这些差异。

     

即使支持后台处理的应用程序也可能随时被系统终止以释放当前前台应用程序的内存。从iOS 7开始,Core Bluetooth支持保存中央和外围管理器对象的状态信息,并在应用程序启动时恢复该状态。您可以使用此功能来支持涉及蓝牙设备的长期操作。 - Source

  

如果扫描外围设备的所有应用都在后台,则中央设备扫描广告数据包的时间间隔会增加。因此,发现广告外围设备可能需要更长时间。 - Source

您的应用程序能够在后台进行扫描时在plist中声明它,但功耗/性能有限以节省电池,并且可能被系统杀死。

不确定但我认为手机锁定时无法连接。您只能恢复以前的连接。

有关于背景蓝牙操作in here的更多信息。