CoreBluetooth和Wifi干扰

我真的被一个问题困住了,所以不用说,我需要你的帮助。 我正在使用CoreBluetooth在两个iDevices之间进行通信,它是同一个应用程序,在一个设备上作为中心运行,在另一个设备上作为外设运行。 在某些情况下,中央连接到外设会出现以下错误:

Error Domain=CBErrorDomain Code=10 "The connection has failed unexpectedly." UserInfo=0x14ee8fe0 {NSLocalizedDescription=The connection has failed unexpectedly.} 

在这种特殊情况下,外设是iPad 4,中央是iPad mini。 我跟踪了这​​个问题,事实certificate,一旦我遇到这个问题,每次连接时都会一直存在问题,无论重新启动应用甚至是双方的蓝牙,但有趣的部分是,如果我关掉中央设备上的Wifi,连接不会超时。

你有什么build议,解决方法吗? 这两款设备都运行iOS 7.1.1

这是一个众所周知的问题,它有一个解决scheme ,确认为Mac方面工作。

 sudo defaults write /Library/Preferences/com.apple.airport.bt.plist bluetoothCoexMgmt Hybrid 

运行此脚本后,问题将消失,BT连接将保持稳定。

这里是解释:

背景:经过大量的窥探和头部划痕之后,下面是我发现的问题:这里的问题似乎是系统没有像BT Classic那样为BLE使用相同的蓝牙/机场共存模式。 一个告诉故事符号:如果您有任何BT经典设备被连接并且活跃,臭虫不会repro(经典设备或任何连接的BLE设备)。 Classic设备断开连接的那一刻,错误重现(即所有的BLE连接也被丢弃)。

此外,我能够在机场configuration代理的符号表中find参考,以设置共存模式的覆盖设置。 如果您将模式手动设置为“混合”模式(与经典设备连接时通常所调用的模式相同),该错误不再重复。

所有的信用都来自Knock的William Henderson。

在iOS设备上也会出现同样的效果。 核心蓝牙连接不稳定时会发生这种情况。 有时这可能导致WiFi连接无法使用。 但是很难复制,至less我没有办法,你的问题也不关心。