0

连接到 BLE 设备并发现其服务后,我检查某个特征是否可读,然后调用readCharacteristic. 此调用返回true,但未调用回调onCharacteristicRead
仅仅 30 秒后,onCharacteristicRead就会以特性 == nullonDeviceDisconnected调用 ,并以等于 22 的状态码调用 。

我已经测试了 nRF Connecte 以读取相同的特性,并且效果很好。

什么可能是错的?

4

1 回答 1

0

它在 30 秒后超时并断开连接并出现错误 22(本地设备终止连接)表明外围设备在 30 秒内没有响应,这是 GATT 标准所要求的。您应该调试外围设备以查找原因。

它在 nRF Connect 中工作的原因可能是之前发送/接收的 GATT 将外围设备置于不同的状态。

您可以查看 Android 中的 HCI 日志以查看所有原始数据包,以了解发生了什么。

于 2019-03-06T00:41:36.993 回答