iOS:在ibeacon唤醒后恢复BLE连接



应用程序被用户杀死后,是否有办法在ibeacon唤醒后恢复以前的BLE连接?

在我的iPhone应用程序中,我可以在应用程序被用户杀死后使用iBeacon唤醒该应用程序。我可以在唤醒期间触发本地通知,但当涉及到与BLE相关的任务时,根本没有响应。没有扫描回调没有连接回调。

编辑:

  1. BLE背景已启用
  2. 它会扫描带有先前与iPhone绑定的标识符的外围设备。标识符存储在Userdefaults中
  3. 对于挂起的连接,当应用程序被终止时,它将调用断开连接回调。我想没有挂起的连接
  4. 我还没有配置BLE状态恢复

感谢Paulw11和Prakash Shaiva

在网上浏览了更多文档后,以下是答案:

就我而言,我想在被用户杀死后唤醒应用程序。并与之前绑定的BLE设备建立连接。

我学到的第一件事
当iOS应用程序被ibeacon唤醒时,它不会调用willRestoreState回调。换句话说,应用程序无法从状态恢复支持恢复连接。但我们可以尝试建立新的连接

当您的应用程序被iOS系统终止时,willRestoreState回调调用。

蓝牙状态恢复重新启动应用程序的条件
请参阅Apple 的答案

我学到的第二件事
为了在唤醒期间建立新的连接,需要将您所在的服务UUID阵列添加到func scanForPeripherals(withServices serviceUUIDs: [CBUUID]?, options: [String : Any]? = nil)中,否则iOS本身将停止随机扫描。

最新更新