我正在使用蓝牙LE(4.0)和CoreBluetooth框架创建一个iOS(7.1)应用程序,使该设备充当"外围设备"。我可以使用另一个充当" Central"的iOS设备连接到应用程序,以便探索其服务和特性。
然而,一旦建立连接,连接将在连接到1分钟后从30秒随机掉落,我不明白为什么。
当我检查委托方法时:
-(void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)aPeripheral error:(NSError *)error
错误消息是"指定的设备已与我们断开连接"。
有谁知道为什么会这样?就像我说的,我可以成功连接并发现一切,但连接随机丢失。
谢谢!
答案 0 :(得分:1)
据我所知,这些断开连接都是故意的,并且在连接持续不必要的时间(特征值没有经常更新)时发生。
一个简单的解决方法是每当centralManager:didDisconnectPeripheral:error:被调用并且您收到此错误消息时重新连接。另一个建议是安排一个计时器,即使特征值没有改变,该计时器也会重复向订阅的中心发送更新。