2

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

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

被自己调用,这意味着设备已断开连接。我浏览了文档,但没有发现任何有用的信息。我知道 BLE 可以是一对多的,那么这个问题来自哪里?我检查了iOS BLE 外围设备中的答案,在调用 discoverServices 后立即断开连接,并且我已经将 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=连接意外超时。}

4

2 回答 2

1

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

于 2017-04-27T07:42:00.407 回答
1

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

于 2017-04-26T10:35:16.783 回答