缓存蓝牙连接iOS

Posted

技术标签:

【中文标题】缓存蓝牙连接iOS【英文标题】:Cache a bluetooth connection iOS 【发布时间】:2013-12-17 03:54:17 【问题描述】:

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

但是,每次我退出或关闭应用程序时,我都会失去连接,并且下次打开应用程序时,我必须重新执行所有初始步骤以重新连接。

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

谢谢!

【问题讨论】:

【参考方案1】:

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

1) 后台模式

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

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

2) 状态恢复

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

然后,当您的应用在后台重新启动时,您只需使用先前指定的恢复标识符重新实例化 CBCentralManager 实例即可恢复之前的状态。更多关于状态恢复的信息可以在same document找到。

【讨论】:

以上是关于缓存蓝牙连接iOS的主要内容,如果未能解决你的问题,请参考以下文章

在多人连接iOS 10中无法通过蓝牙连接

iOS蓝牙开发:蓝牙连接和数据读写

iOS - 连接任何蓝牙设备时唤醒应用程序

可以为 iOS 生成连接的蓝牙设备列表吗?

iOS中蓝牙与打印机连接使用

iOS蓝牙开发:蓝牙的连接和数据的读写