我正在尝试通过低功耗蓝牙连接发送多个数据段。正如我在这篇文章(link)中所读的,在触发了onCharacteristicWrite回调之前,将不会发送其他数据。我已经确认了这一点,但是直到我写入特征后大约三秒钟才触发回调,这使我的应用程序变慢了。我知道数据已经到来,因为我正在使用FTDI电缆监控蓝牙模块。
我已尝试按照本文中的建议(link)更改连接间隔,并且还减少了从属延迟,但未进行任何更改。
为什么会发生这种情况,如何减少这次在writeCharacteristic和OnCharacteristicWrite之间的时间?
最佳答案
我认为这是因为设备响应返回android太晚了。
“写入类型”的默认值为“ BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT”。
解决方案是您应将其更改为“ BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE”,以免等待设备的响应:bluetoothGattCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);
加快了触发器的onCharacteristicWrite()回调持续时间。