我正在尝试通过蓝牙低功耗连接发送多个数据段。正如我在这篇文章(link)中读到的那样,在触发onCharacteristicWrite回调之前,不会再发送任何数据。我已经确认了这一点,但是在我写入特征后大约 3 秒后才会触发回调,这会降低我的应用程序速度。我知道数据已经到了,因为我用FTDI电缆监视蓝牙模块。
我已尝试按照此帖(link)中的建议更改连接间隔,并且还减少了“从属延迟”但没有任何更改。
为什么会发生这种情况?如何在writeCharacteristic和OnCharacteristicWrite之间减少这个时间?
答案 0 :(得分:0)
我认为这是因为设备响应对Android来说太迟了 "写类型"默认值为" BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT" 。
解决方案是您应该将其更改为" BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE" ,以便不等待来自设备的响应:
bluetoothGattCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);
加快 onCharacteristicWrite()触发的回调持续时间。