didDisconnectPeripheral自动调用了

3
我可以担任中文翻译,以下是您需要翻译的内容:

我有一个应用程序,应该使用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>

从<CBPeripheral: 0x15e85a80, identifier = 1BD21078-B2B7-1EE9-5BDC-324DEC7A1BD6, name = Mac mini, state = disconnected>断开连接 错误域=CBErrorDomain Code=6 "连接意外超时。" UserInfo={NSLocalizedDescription=连接意外超时。}


1
在你的情况下,error参数是否为nil - Larme
你是一直连接到同一种设备吗?你连一个设备都无法保持连接吗? - Larme
这是在iOS设备之间发生的(iPhone到iPad,反之亦然)。 - Elsammak
我在我的外围设备上没有编写代码,我只有一个在我的主设备上连接到蓝牙设备的代码。 - Elsammak
不,我只是有一个简单的iOS应用程序,可以发现附近的设备并连接到它们,无论它们的类型是什么。 - Elsammak
显示剩余4条评论
2个回答

1

链接断开有多种不同的原因。可能是某一方发起了断开连接的过程。错误6“连接意外超时”表示蓝牙链接在无线电层面上失去了连接,例如由于超出范围或其他干扰。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接