同时使用经典BT和BLE与同一外设进行通信时出现“对等删除配对信息”错误

问题描述

我们的IOS应用程序通过BLE与某些设备(英特尔NUC)进行通信,并写入一些特征。第一次写入特征时,我们使用加密的特征来强制系统配对。

同一设备上的另一软件正在使用经典BT同步联系人(电话簿访问配置文件)并将音乐从iPhone流式传输到英特尔NUC。这也需要系统配对(与BLE连接所需的配对)。

一旦将设备与BLE和经典BT配置文件配对(两个单独的配对过程),一切正常。当我们手动断开与系统BT设置的外围设备连接时,或者由于iPhone超出NUC设备范围而更糟时,就会出现问题。这些设备在BT设置中保持断开状态,如果我们回来的话,那么这两个设备都在范围内。这是没有问题的,因为我们已配对进行BLE通信,因此我们应该能够与当前断开连接但在范围内的设备进行连接。但是,当尝试通过BLE连接时,会出现错误

Domain = CBATTErrorDomain代码= 14“已删除对等配对信息” UserInfo = {NSLocalizedDescription =已删除对等配对信息}

我们连接到 CBCentralManager.retrieveperipherals(:withIdentifiers)方法返回的设备

一旦我们在系统BT设置中手动进行连接,所有星星便会再次正常工作。

我们尝试使用 CBConnectPeripheralOptionEnableTransportBridgingKey标志传递给CBCentralManager.connect()方法,但情况变得更糟。经典BT配置文件的系统配对存在问题,即使我们设法通过BLE超时连接也可以做到这一点。

任何想法可能是问题的原因吗?

解决方法

在您的情况下,外围设备正在删除配对信息(按用户或从 BLE)。可能与外围设备固件有关。这个错误“Domain=CBATTErrorDomain Code=14“Peer removed pairing information” UserInfo={NSLocalizedDescription=Peer removed pairing information}”在iOS(

示例:对等方删除了配对信息。在重新连接等之前打开蓝牙设置并忘记设备。否则用户会感到困惑。