首页 > 解决方案 > BluetoothGattCallback 处理来自 BLE 设备的数据缓慢

问题描述

我正在从每 25 毫秒更新一次特征的设备读取 BLE 数据,然后通过onCharacteristicChanged()回调每 25 毫秒通知 android。

由于我同时进行读取和写入调用,因此我实现了一个队列Queue(Runnable),因此我不会错过通过每个onCharacteristicChanged()回调添加到队列中的任何读/写命令。

随着可运行队列得到处理,我使用onCharacteristicWrite()onCharacteristicRead()执行不超过 20 位的读/写操作。

问题是异步 ble 回调onCharacteristicWrite( ) 和onCharacteristicRead()非常慢,并且每 100 毫秒才为队列处理一个可运行的。由于我每 25 毫秒获取一次新数据,因此队列只会越来越长......

如何加快 ble 回调的处理时间?我在onCharacteristicRead()onCharacteristicWrite()中的代码基本上是读取位并在应用程序中广播它们,没什么大不了的,所以我想知道这是否是 android 限制。

谢谢你的帮助!

标签: androidbluetooth-lowenergyandroid-bluetoothbluetooth-gatt

解决方案


推荐阅读