缓存蓝牙连接 iOS



我是iOS蓝牙开发的新手。我已经使用CoreBlue和CBCentralManager成功将我的iOS设备连接到外部蓝牙4.0(BLE)设备。

但是,每次我退出应用程序或关闭它或其他任何东西时,我都会失去连接,下次应用程序打开时,我必须重做所有初始步骤才能重新连接。

所以我的问题是,如何在iOS端"缓存"蓝牙连接?也许缓存不是正确的术语,我只是在寻找一种在第一次将iOS应用程序连接到外部蓝牙设备后记住连接的方法。

谢谢!

听起来这里有两个可能的因素在起作用:

1) 后台模式

如果您希望蓝牙连接在关闭应用程序后保持活动状态(如果您使用的是CBPeripheralManager,则继续投放广告),则需要将bluetooth-centralbluetooth-peripheral后台模式添加到 Info.plist 文件中。有关蓝牙背景模式的更多信息,请参阅此处。

正如您提到的在iOS端使用CBCentralManager,在您的情况下,适当的背景模式将是 bluetooth-central .

2) 国家恢复

CBCentralManagerCBPeripheralManager都有一个初始化选项,允许您指定还原标识符。对于CBCentralManager,您需要将一个包含键CBCentralManagerOptionRestoreIdentifierKey唯一标识符的字典传递到 -initWithDelegate:queue:options 的选项参数中。

然后,当您的应用在后台重新启动时,您只需使用先前指定的还原标识符重新实例化CBCentralManager实例,即可还原以前的状态。有关状态恢复的更多信息,请参阅同一文档。

最新更新