是否可以使用 corebluetooth 框架来检测外围设备是否可绑定?
我应该实现无法连接到委托吗?
是否可以使用 corebluetooth 框架来检测外围设备是否可绑定?
我应该实现无法连接到委托吗?
此时什么都没有。对于更高版本的 BLE,绑定信息(GAP 模式)位于 GAP 配置文件中,但您无法通过 CoreBluetooth 获得任何信息。除了一些广告数据和有限的扫描响应数据外,它只提供 GATT 信息及以下信息。
您可以读取任何所需的特征属性以查看它是否需要加密 ( CBCharacteristicPropertyNotifyEncryptionRequired
),这意味着您需要有一个受信任的连接(配对)才能访问它。这与您现在将要获得的一样接近。
首次连接时不应提示您配对,因此didFailToConnectPeripheral
在这里无济于事。只有在您尝试读取其中一个加密特征后,才会提示您配对。因此,如果您先检查特征的属性,您仍然应该在提示用户之前知道。
这来自 Apple 的蓝牙配件设计指南:
在使用 Insufficient Authentication 错误代码拒绝 ATT 请求之前,附件不应请求配对。有关详细信息,请参阅蓝牙 4.0 规范第 3 卷 F 部分第 4 节。
如果出于安全原因,附件需要与 Central 建立绑定关系,Peripheral 应酌情使用 Insufficient Authentication 错误代码拒绝 ATT 请求。因此,Apple 产品可能会继续执行必要的安全程序。