重新连接蓝牙设备时用户终止应用程序时



我有一个带有按钮的蓝牙设备。单击设备的按钮时,通知特征更新,我的应用显示本地通知。这就是简单的。

我在下面的前景中连接蓝牙设备:

   var restoreOptions = [CBPeripheralManagerOptionRestoreIdentifierKey: "customIdentifier"]
   centralManager.connect(peripheral, options: restoreOptions)

然后设置了通知特征值是真实的:

   peripheral.setNotifyValue(true, for: notificationCharacteristic)

当通知特征更新时,应用显示本地通知:

   func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
       showLocalNotification()
   }

当通知特征发生变化时,会触发didupdatevaluefor并显示局部通知。前景和背景没有问题。但是,当应用程序被用户终止时,蓝牙设备会断开连接,并且未触发diDupDateValue。当特性更改甚至由用户终止时,我想重新连接蓝牙设备。我怎样才能做到这一点 ?我希望我能告诉你我的问题。谢谢。

您需要启用并编程应用程序来处理Core-Bluetooth背景模式

这样,如果您的应用程序被操作系统杀死以释放一些资源,则可以重新连接到设备。

"即使您的应用程序支持一个或两个核心蓝牙背景执行模式,它也不能永远运行。在某些时候,系统可能需要终止您的应用程序以释放当前前景应用程序的内存 - 引起例如,任何活动或待处理的连接都将丢失。从iOS 7开始,核心蓝牙支持为中央和外围管理器对象保存状态信息,并在应用程序启动时间恢复状态。您可以使用此功能来支持涉及的长期操作蓝牙设备"

但是,如果用户终止了您的应用程序。

,您无法重新连接

相关内容

最新更新