我真的遇到了问题,因此,不用说,我需要你的帮助。 我使用CoreBluetooth在两个iDevices之间进行通信,它是同一个应用程序,在一台设备上作为中心运行,在另一台设备上作为外围设备运行。在某些情况下,中央会丢失与外围设备的连接,并出现以下错误:
Error Domain=CBErrorDomain Code=10 "The connection has failed unexpectedly." UserInfo=0x14ee8fe0 {NSLocalizedDescription=The connection has failed unexpectedly.}
在这种特殊情况下,外围设备是iPad 4,中央是iPad mini。 我追踪到了问题,事实证明,一旦我遇到这个问题,每次我连接时问题都会持续存在,无论重启应用程序甚至是双方的蓝牙,不过,有趣的部分是,如果我关闭在中央设备上无线连接,连接不再超时。
你有什么建议,解决方法吗?两台设备都运行iOS 7.1.1
答案 0 :(得分:6)
这是一个众所周知的问题,它已经确认solution适用于Mac端。
sudo defaults write /Library/Preferences/com.apple.airport.bt.plist bluetoothCoexMgmt Hybrid
运行此脚本后,问题将消失,BT连接将保持稳定。
以下是解释:
背景:经过大量的窥探和头部刮擦,这就是我发现的问题:这里的问题似乎是系统没有使用与BLE相同的蓝牙/机场共存模式对于BT Classic。一个告诉故事标志:如果你有任何BT Classic设备已连接并处于活动状态,那么这个bug就不会重复(无论是Classic设备还是任何连接的BLE设备)。 Classic设备断开连接的那一刻,错误重现(即所有BLE连接也被丢弃)。
此外,我能够在机场配置代理的符号表中找到参考共存模式的覆盖设置。如果您将上述模式手动设置为' hybrid' (与连接经典设备时通常调用的模式相同),该错误不再重复。
所有的归功于Knock的William Henderson这个技巧。
有些情况下iOS设备也会感受到相同的效果。有时核心蓝牙连接不稳定时会发生这种情况。有时,这可能导致WiFi连接无法使用。但重现起来很难,至少我是不能的,你的问题也不关心。