iphone - CoreBluetooth APIMISUSE(发送命令 - 外设未连接)

标签 iphone core-bluetooth bluetooth-lowenergy cbperipheralmanager

我正在使用的系统使用以下场景:

  1. 连接到蓝牙 LE 设备
  2. 了解服务和特色
  3. 将命令写入 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/

相关文章:

ios - 刷新众多蓝牙外设的RSSI值

android - 如何使用蓝牙 LE MAC 地址唯一地识别 android 设备?

android - 如何在 Android 中强制蓝牙 LE "Just Works"配对

ios - 我对逃避关闭有点困惑

iphone - 如何在Cocos2d中隐藏屏幕左下角的FPS数字

ios - 在哪里可以找到 BR-LE4.0-S2A 技术规范。即服务和特征的 UUID 列表?

java - Android:通过 BLE 发送数据 >20 字节

iphone - 有没有办法在iPhone上录制设备音频?

c++ - 在 iPhone 项目中链接 C++ 源代码

ios - 无限期地在后台传输心率?