Я думаю, что mBluetoothLeService.writeCharacteristic(10);
вызовы, подобные этим, уже блокируют поток, поэтому их использование в порядке без необходимости в обработчиках может быть вашим решением. Я не думаю, что эта функция является асинхронной, поэтому, если она возвращает true, вы можете написать следующую. Они являются булевыми функциями, поэтому, если он возвращает true, вы можете переключиться на следующую.
Я изучил исходный код, и если он выдает исключение внутри, он возвращает false. В противном случае он возвращает, был ли он успешным или нет.
Примечание: это поведение может отличаться в разных версиях API, исходный код, на который я обращался, был для API 29. Хотя я считаю, что поведение будет то же самое, за исключением того, что вам может понадобиться обернуть вызовы mBluetoothLeService.writeCharacteristic(10);
в блок try-catch.
Мне нужно отредактировать это, так как ответ неверный, логического возвращаемого значения недостаточно, чтобы определить была ли операция успешной. Операция действительно асинхронная, но есть обратный вызов, который вы можете использовать ( этот обратный вызов ), чтобы проверить, была ли операция записи успешной, а затем перейти к следующей.
Проверка этот ответ для получения дополнительной информации, и, если возможно, уберите галочку с этого, пожалуйста.