didDisconnectPeripheral自己调用

时间:2017-04-25 13:28:35

标签: ios bluetooth-lowenergy core-bluetooth cbperipheral cbperipheralmanager

我的应用程序应该使用CoreBluetooth立即连接到不同的设备。 我的问题是意外断开连接。一旦我连接到任何外设方法

func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {

自行调用,这意味着设备已断开连接。 我浏览了文档,但没有发现任何有用的东西。我知道BLE可以是一对多的,所以这个问题来自哪里? 我检查了iOS BLE peripherals keep disconnecting immediately after discoverServices is called中的答案,并且我已经在阵列中保存了CBPeripherals但问题仍然存在。

我得到的输出示例

Connect to <CBPeripheral: 0x15e85a80, identifier = 1BD21078-B2B7-1EE9-5BDC-324DEC7A1BD6, name = Mac mini, state = connected>

Connect to <CBPeripheral: 0x15d83b20, identifier = 6BA160A7-55E7-501D-F195-437CDCD2B558, name = Mac mini, state = connected>

Disconnect from <CBPeripheral: 0x15e85a80, identifier = 1BD21078-B2B7-1EE9-5BDC-324DEC7A1BD6, name = Mac mini, state = disconnected>错误域= CBErrorDomain代码= 6&#34;连接意外超时。&#34; UserInfo = {NSLocalizedDescription =连接意外超时。}

2 个答案:

答案 0 :(得分:1)

链接断开有一些不同的原因。某一方启动断开程序。错误6&#34;连接意外超时&#34;意味着蓝牙链路在无线电级别上丢失连接,例如由于超出范围或其他类型的干扰。

答案 1 :(得分:1)

经过大量搜索后,我发现连接到多个设备会导致此问题。 https://spin.atomicobject.com/2016/01/20/multiple-ble-devices-in-ios/