在后台模式下连接的外围设备(核心蓝牙)
Connected peripheral in background mode (Core Bluetooth)
我正在尝试实现以下场景:
- 打开应用程序并连接到 BLE 外设。 工作
- 将应用程序发送到后台并保持连接。 工作
- 关闭BLE Peripheral,应用会收到断开连接通知。 工作
- 打开BLE Peripheral,应用会收到连接断开的通知。 工作
- 再次关闭BLE Peripheral。 工作
- 应用程序在后台等待 2 天,然后打开 BLE 外设,但应用程序没有任何反应。 不工作
我怎样才能完成这最后一步? iOS 会在需要时终止后台应用程序,但是有没有办法在发现以前连接的外围设备时收到通知?我读了一些关于 CB 状态恢复的内容,但我真的不知道这是否能解决这种情况。
核心蓝牙状态保存/恢复正是您想要的。如果您的应用程序被暂停,它会在外围设备连接/断开连接或通知到达时启动您的应用程序。但是,如果出于任何原因重新启动蓝牙,您的应用程序将停止被唤醒的方式被设计破坏。例如,如果用户切换蓝牙或飞行模式,或者 phone 重新启动,蓝牙崩溃(时不时发生)。
我正在尝试实现以下场景:
- 打开应用程序并连接到 BLE 外设。 工作
- 将应用程序发送到后台并保持连接。 工作
- 关闭BLE Peripheral,应用会收到断开连接通知。 工作
- 打开BLE Peripheral,应用会收到连接断开的通知。 工作
- 再次关闭BLE Peripheral。 工作
- 应用程序在后台等待 2 天,然后打开 BLE 外设,但应用程序没有任何反应。 不工作
我怎样才能完成这最后一步? iOS 会在需要时终止后台应用程序,但是有没有办法在发现以前连接的外围设备时收到通知?我读了一些关于 CB 状态恢复的内容,但我真的不知道这是否能解决这种情况。
核心蓝牙状态保存/恢复正是您想要的。如果您的应用程序被暂停,它会在外围设备连接/断开连接或通知到达时启动您的应用程序。但是,如果出于任何原因重新启动蓝牙,您的应用程序将停止被唤醒的方式被设计破坏。例如,如果用户切换蓝牙或飞行模式,或者 phone 重新启动,蓝牙崩溃(时不时发生)。