我正在使用Android BLE应用程序。我有一个BLE设备,用于存储设备所在位置的坐标。
为了在连接后从设备获取数据,我们需要发送几个命令并读取其响应。步骤如下:
- 将第一个命令发送到设备
- 阅读回复(部分数据......)
- 向设备发送第二个命令
- 阅读回复(坐标)
醇>
这就是我的做法
- 连接后,使用 writeCharacteristic
向设备发送命令
- 在 onCharacteristicWrite 回调中接收 GATT_SUCCESS 时,请致电 readCharacteristic 以阅读其回复
- 在 onCharacteristicRead 回调中接收 GATT_SUCCESS 时,继续使用 writeCharacteristic
向设备发送第二个命令
- 在 onCharacteristicWrite 回调中接收 GATT_SUCCESS 时,请致电 readCharacteristic 以阅读其回复
醇>
所以这就是问题所在,当我在写操作成功后发出 readCharacteristic 时,不会一直期待响应,有时它会返回我写的相同命令。但是,如果我在写完后放了一些延迟(例如1秒),那么当我读取时响应是正确的,但延迟可能每次都不同。
我想知道是否有人有这样的问题或任何人可以向我解释为什么会发生这种情况?我们可以知道什么时候是读取特征的正确时间吗?
注意:设备不提供任何通知/指示。