How to Write consecutive Characteristic fast and stable for BLE in Android?

强颜欢笑 提交于 2019-12-03 05:39:30

The read/write characteristic system in Android's Bluetooth stack isn't good at queueing up multiple operations. You need to wait for operations to complete before sending along another one. In addition, since your code is using AsyncTask, you will get parallel execution of tasks on some devices, so even the requests aren't being serialized when you repeatedly hit the button.

To get stable results from the framework, you will need to queue up those requests yourself and wait for BluetoothGattCallback onCharacteristicWrite() to trigger before sending the next command. Your code needs to synchronize all access to the GATT object, so that the next writeCharacteristic() never comes until the completion callback fires for the previous request.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!