Я пытаюсь разработать приложение BLE, которое имеет несколько действий для управления пользовательским устройством BLE. Проблема, с которой я сталкиваюсь сейчас, связана с тем, что устройство находится вне зоны действия или когда соединение потеряно.
Приложение имеет службу BLE, которая обрабатывает сканирование и соединения Gatt. После того, как пользователь выбрал устройство в первом действии, запускается второе действие, и приложение подключается к выбранному устройству. Во втором действии пользователь может выбирать из 4 различных меню, каждое из которых запускает новое действие.
Одним из вариантов является управление устройством, используемое для запуска/остановки сбора данных. В любой момент времени, если соединение BLE потеряно, появляется диалоговое окно с предупреждением, позволяющее пользователю повторно подключиться к устройству. Однако, когда соединение теряется в третьем действии (управление устройством) при повторном подключении, если я затем выхожу из действия и снова возобновляю, приложение больше не обновляет статус.
Извините, я знаю, что это, вероятно, очень расплывчато, но я действительно понятия не имею, что вызывает эту проблему. Я сузил его до службы BLE, которая автоматически ставит в очередь запросы BLE (запись, чтение и т. д.) и выполняет их, когда Гатт не занят. И проблема возникает из-за того, что Гатт никогда не очищает флаг занятости после возвращения из второго действия, но я не могу понять, почему.
Спасибо за помощь.