IOS CoreBluetooth:当BLE断开连接时应用程序在后台运行

时间:2015-03-02 15:11:50

标签: ios bluetooth core-bluetooth

我正在尝试在BLE断开连接的情况下在后台运行我的应用程序。但系统会在一段时间后终止应用程序。所以我读了苹果公司的文档 - “核心蓝牙编程指南”。最后一篇我在“iOS应用程序的核心蓝牙背景处理”中找到了以下段落。

  

“在后台执行长期行动

     

某些应用可能需要   使用Core Bluetooth框架来执行长期操作   背景。举个例子,假设你正在开发一个家庭安全   适用于与门锁通信的iOS设备的应用程序(配备蓝牙低功耗技术)。当用户离开家时,应用程序和锁相互作用以自动锁定门,当应用程序在后台时,当用户返回时解锁门。当用户离开家时,iOS设备最终可能会超出锁定范围,从而导致与锁定的连接丢失。此时,应用程序可以简单地调用CBCentralManager类的connectPeripheral:options:方法,并且由于连接请求没有超时,iOS设备将在用户返回主页时重新连接。现在想象一下,用户离开家几天。如果在用户离开时系统终止应用程序,则当用户返回家时,应用程序将无法重新连接到锁定,并且用户可能无法解锁门。对于这样的应用程序,能够继续使用Core Bluetooth执行长期操作(例如监视活动连接和挂起连接)至关重要。“

从这段文字中我们知道“监控活动和待定连接can solve the problem但我无法找到任何方法来实现monitoring active and pending connections

  

核心蓝牙框架参考

如何实现在BLE断开连接时让我的应用在后台运行?

有没有人有任何想法?

1 个答案:

答案 0 :(得分:6)

如果您使用bluetooth-central Background Execution Mode注册您的应用,那么您的应用会在未运行时启动,并会获得处理发现和连接所需的代理方法,例如{ {3}},您可以从中调用centralManager:didDiscoverPeripheral

系统可能会在后台终止您的应用,但会为这些事件重新启动它。

系统赢得重新启动应用以进行后台BLE执行的唯一时间是用户强制在之前的启动时杀死了应用。系统会记住这一点,并且不会再次重新启动应用程序,直到用户第一次手动重新启动它。