我正在使用的系统使用以下场景:
- 连接到蓝牙 LE 设备
- 了解服务和特色
- 将命令写入 TX 特性并接收响应
以上在 90% 的情况下都可以正常工作。有时,系统会进入第三步不断失败的状态(即使步骤 1 和 2 成功,设备也没有任何响应。重新启动应用程序/手机/BLE 设备并不能解决此问题。阻塞是恒定的。如何解决问题是手动从 iOS 系统设置中取消设备配对。查看 BLE 诊断日志,我得到以下信息:
“pon.mar 7 21:27:30 首选项[380]:[CoreBluetooth] API 误用:只能在连接状态下接受命令”
但是,在发送命令之前,我已经调试了应用程序,并且 100% 已建立连接,并且已发现服务和特性。任何想法?有人遇到类似问题吗?
最佳答案
您是否在中央管理器委托(delegate)中实现了 centralManager:didDisconnectPeripheral:error:
?
当外围设备断开连接时,它会通知您。可能是外围设备已断开连接或存在连接错误。您应该始终确保仅在连接状态下执行读/写操作。
也许还可以看看这个方法:centralManager:didFailToConnectPeripheral:error:
关于iphone - CoreBluetooth APIMISUSE(发送命令 - 外设未连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35864710/