AccessibilityService отсоединяется при выключении питания и не привязывается повторно после перезагрузки.

У меня возникла проблема с AccessibilityService. Когда я выключаю свое устройство, AccessibilityService отвязывается, вызывая onUnbind. Но когда я снова запускаю свое устройство, AccessibilityService не перепривязывается и служба onRebind не вызывается. Я проверил с помощью команды adb adb shell dumpsys activity service .MyPackage.AccessibilityService и обнаружил, что моя служба работает, но не получает AccessibilityEvent, так как служба не восстановлена. Все снова начинает работать нормально после того, как я остановлю и перезапущу свой AccessibilityService из настроек. Как я могу решить эту проблему..? Я думал об использовании disableself в onUnbind, потому что это заставит пользователя запускать службу из настроек, но этот вызов доступен из API 24. И что я должен делать..?


person Shafin Abrar    schedule 15.09.2016    source источник
comment
На скольких устройствах возникает эта проблема?   -  person PsyGik    schedule 15.09.2016
comment
Я протестировал свое приложение только на 2 устройствах: одно — Jellybean, которое создает проблему, другое — KitKat, которое большую часть времени работает нормально.   -  person Shafin Abrar    schedule 15.09.2016


Ответы (1)


Я много искал и пробовал почти все, что можно было сделать. В конце концов я пришел к выводу, что это ошибка Android, так как эта проблема не возникает на API 19 или более поздних версиях. Другим разработчикам, страдающим от этой проблемы, я предлагаю использовать предпочтение для сохранения состояния вашего сервиса, rebinded или нет. Теперь, прежде чем пытаться использовать свой сервис, проверьте, перепривязан ли ваш сервис или нет. Если нет, сообщите пользователю, что ему/ей придется перезапустить службу перед ее использованием.

Я предоставил более подробный ответ здесь. проверьте это, если вы все еще в замешательстве.

person Shafin Abrar    schedule 18.09.2016