连接到BLE设备并发现其服务后,我检查某个特征是可读的,然后调用readCharacteristic
。该调用返回true
,但未调用回调onCharacteristicRead
。
仅30秒后,以特征== null调用onCharacteristicRead
,并以状态码等于22调用onDeviceDisconnected
。
我已经对nRF Connecte进行了测试,以读取相同的特性,并且工作正常。
可能有什么问题吗?
答案 0 :(得分:0)
它在30秒后超时并因错误22断开连接(本地设备终止了连接),这一事实表明外围设备在30秒内没有响应,这是GATT标准所要求的。您应该调试外围设备以找到原因。
它在nRF Connect中起作用的原因可能是先前发送/接收的GATT使外围设备处于不同的状态。
您可以在Android中查看HCI日志以查看所有原始数据包,以了解发生了什么情况。