一次处理多个蓝牙配对请求对话框

Handling multiple Bluetooth Pairing Request Dialogs at once

我有一个与 BLE 设备集成的应用程序。我可以连接到任意数量的设备。当通过 [CBCentralManager connectPeripheral:options:] 启动从应用程序到设备的配对时,如果未找到先前的配对信息,系统蓝牙配对请求警报将触发。这一切都很好。

但是,我正在实现一项功能,可以同时发现、配对和读取多个设备的特征。如果设备之前已经配对,这也很有效。但是,如果这是多个设备的第一次配对,则只会显示一个配对请求警报控制器。让这变得更加困难的是,对于等待配对对话框响应的其他设备,我也没有收到来自 CB 的连接失败错误。

有什么方法可以优雅地处理需要注意多个配对请求的情况?如果其中至少一项是可能的,那将会很有帮助:

CoreBluetooth 中没有可让您与配对交互的 API。 您是否可以控制要配对的外围设备的固件?如果是这样,您可以启用通知并发送配对过程的事件。这样您就可以在应用程序中了解配对过程的当前状态。

对于某些示例,通过查看状态和错误代码(详细信息取决于您的外围 BLE 堆栈),您将能够确定 iOS 何时显示配对对话框、何时用户按下取消以及何时配对成功。还可以识别何时 iOS 没有设置配对对话框。