didDisconnectPeripheral自己调用

问题描述:

我有一个应用程序应该使用CoreBluetooth连接到不同的设备一次。 这里我的问题是意外断开连接发生。一旦我连接到任何外设,方法didDisconnectPeripheral自己调用

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 “的连接已意外超时”。 UserInfo = {NSLocalizedDescription =连接意外超时}}

+1

错误参数是否在你的情况? – Larme

+0

错误域= CBErrorDomain代码= 7“指定的设备已与我们断开连接。” UserInfo = {NSLocalizedDescription =指定设备已与我们断开连接。} – Elsammak

+0

您是否始终连接到销售类设备?你甚至不能连接到1台设备? – Larme

链接断开有一些不同的原因。任何一方发起断开程序。错误6“连接意外超时”意味着蓝牙链路丢失了无线电级别的连接,例如由于超出范围或其他类型的干扰。

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