Я пытаюсь создать приложение, которое отображает некоторую информацию при подключении телефона к зарядному устройству в течение определенного периода дня.
До Android Oreo это было легко, просто добавьте приемник Broadcast и добавьте android.intent.action.ACTION_POWER_CONNECTED в фильтр намерений в манифесте.
Сейчас я изо всех сил пытаюсь найти работающее решение для создания такой же функциональности. Я думал о периодической проверке состояния зарядки устройства, но это кажется неправильным, и он не сработает сразу при подключении устройства к зарядному устройству.
Регистрация приемника вещания из моего приложения также не работала, когда приложение закрыто, вещание больше не принимается.
Существует ли удобный для аккумулятора способ инициировать действие, когда устройство Android подключено к зарядному устройству в Android Oreo?
Существуют широковещательные рассылки, которые освобождены от ограничений фонового выполнения и для которых приемники широковещательной передачи все еще могут быть зарегистрированы в манифесте.
Вы можете использовать трансляцию ACTION_BOOT_COMPLETED, чтобы запустить службу, которая регистрирует получателя для вашей трансляции ACTION_POWER_CONNECTED во время выполнения. (Служба должна быть службой переднего плана. В противном случае она может быть уничтожена.)
Другое решение было бы использовать JobScheduler для создания работы, которая требует оплаты. Тогда вам не нужно обслуживание переднего плана.