Что стоит учесть при разработке приложения для специальных возможностей в Android?
Я наткнулся на проблему описанную в вопросе на этом же форуме - см. Служба специальных возможностей неисправна.
Покапавшись в сети я нашел этот сайт - см. Сервис работает некорректно Xiaomi спец возможности. В нем написано следующие:
- Включите администрирование устройства. Сделав это, пришло время заглянуть в меню «Администрирование устройства». Приложения с правами администратора устройства остаются в памяти и редко отключаются в настройках специальных возможностей.
Что, конечно, не является техническим ликбезом, но это всё что я нашел, что хоть косвенно, но связано с этой проблемой.
Моему приложению выдано разрешение IGNORE_BATTERY_OPTIMIZATIONS, Wake Lock также используется.
Тогда у меня возник вопрос, а как другие разработчики с этим справляются?
Вопросы
Правильно ли я делаю, включая Wake Lock только в ресивере:
public class ScreenReceiver extends BroadcastReceiver { public static boolean wasScreenOn = true; @Override public void onReceive(final Context context, final Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { // do whatever you need to do here wasScreenOn = false; System.out.println("Экран: выключен"); // Включить блокировку спящего режима для своего приложения: MyService.wakeLock.acquire(); System.out.println("Включить блокировку спящего режима для своего приложения"); } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { // and do whatever you need to do here wasScreenOn = true; System.out.println("Экран: включен"); // Выключить блокировку спящего режима для своего приложения: MyService.wakeLock.release(); System.out.println("Выключить блокировку спящего режима для своего приложения"); } } }
Ну, т.е в MyService и в AccessibilityService нет включений кода:
MyService.wakeLock.release() и MyService.wakeLock.acquire()
Правильно ли я понимаю, что wake lock нужно включать в каждом жизненном цикле отдельно, т.е в классах наследующих Service и AccessibilityService?
Что ещё мне стоит знать, чтобы служба спец возможностей работала стабильно и без перебоев?