后台模式连接外设(核心蓝牙)

时间:2016-05-18 09:34:48

标签: ios swift bluetooth background core

我正在尝试实现以下方案:

  • 打开应用程序并连接到BLE外围设备。 工作
  • 将应用程序发送到后台并保持连接活动。 工作
  • 关闭BLE外设,并通知应用程序断开连接。 工作
  • 打开BLE外设,并通知应用程序断开连接。 工作
  • 再次关闭BLE外设。 工作
  • 在应用程序的后台等待2天,然后打开BLE Peripheral,但应用程序什么都不做。 不工作

如何实现最后一步? iOS会在需要时杀死后台应用程序,但有没有办法在发现以前连接的外围设备时收到通知?我读了一些关于CB State Restoration的内容,但我真的不知道这是否会解决这种情况。

1 个答案:

答案 0 :(得分:1)

核心蓝牙状态保存/恢复正是您想要的。如果您的应用程序被暂停,则会在外围设备连接/断开连接或通知到达时启动应用程序。然而,如果蓝牙因任何原因重新启动,您的应用程序将停止被唤醒的方式将其破坏。例如蓝牙崩溃(偶尔发生),如果用户切换蓝牙或飞行模式,或者手机重新启动。