Я читаю данные BLE с устройства, которое обновляет характеристики c каждые 25 мс, затем android получает уведомление каждые 25 мс через onCharacteristicChanged () обратный вызов.
Поскольку я это делаю читая и записывая вызовы одновременно, я реализовал очередь Queue (Runnable) , поэтому я не пропускаю ни одной команды чтения / записи, которую добавляю в очередь при каждом обратном вызове onCharacteristicChanged () .
Когда очередь исполняемых объектов обрабатывается, я использую onCharacteristicWrite () и onCharacteristicRead () для выполнения операции чтения / записи длиной не более 20 бит.
Проблема заключается в асинхронных обратных вызовах onCharacteristicWrite () и onCharacteristicRead () очень медленные и обрабатывают одну работоспособную очередь только каждые 100 мс. Поскольку я получаю новые данные каждые 25 мс, очередь становится все длиннее и длиннее ...
Как я могу ускорить время обработки обратных вызовов? Мой код внутри onCharacteristicRead () и onCharacteristicWrite () в основном считывает биты и транслирует их в приложение, ничего сложного, поэтому мне интересно, если это ограничение android.
Спасибо за помощь!