android - BluetoothGattCallback 处理来自 BLE 设备的数据缓慢
问题描述
我正在从每 25 毫秒更新一次特征的设备读取 BLE 数据,然后通过onCharacteristicChanged()回调每 25 毫秒通知 android。
由于我同时进行读取和写入调用,因此我实现了一个队列Queue(Runnable),因此我不会错过通过每个onCharacteristicChanged()回调添加到队列中的任何读/写命令。
随着可运行队列得到处理,我使用onCharacteristicWrite()和onCharacteristicRead()执行不超过 20 位的读/写操作。
问题是异步 ble 回调onCharacteristicWrite( ) 和onCharacteristicRead()非常慢,并且每 100 毫秒才为队列处理一个可运行的。由于我每 25 毫秒获取一次新数据,因此队列只会越来越长......
如何加快 ble 回调的处理时间?我在onCharacteristicRead()和onCharacteristicWrite()中的代码基本上是读取位并在应用程序中广播它们,没什么大不了的,所以我想知道这是否是 android 限制。
谢谢你的帮助!
解决方案
推荐阅读
- excel - 我怎样才能一个一个地运行不同的潜艇?
- php - 电子邮件唯一验证器 yii2 不返回消息验证
- python - 使用字典值对嵌套列表值进行排序
- kotlin - 为什么在 catch 块中更改调度程序会抛出 VerifyError
- flutter - 如何检测颤动中的键盘点击?
- swift - 在范围 swift 5 中找不到“视图”
- javascript - jquery全选复选框不会在单个复选框上触发更改事件
- rest - Shopee OpenAPI 1.0 Authorization and Authentication 总是返回“No partner_id”
- geopandas - 如何使用 geopandas 计算距离
- python-3.x - 使用 OpenCV 比较列表并显示结果