Я столкнулся с той же проблемой, хотя я думаю, что Android должен различать это, отправляя другое состояние в приемник или предоставляя функцию для запроса такого состояния, я не нашел ничего связанного.
помните, что ACTION_DEVICE_IDLE_MODE_CHANGED снова срабатывает при переходе в сон через 9-10 минут.
решение будет:
ТЕКУЩЕЕ СОСТОЯНИЕ УСТРОЙСТВА -> "В ДРЕМНЕ БЕЗ РАБОТЫ"
когда вы получаете ACTION_DEVICE_IDLE_MODE_CHANGED, а isDeviceIdleMode() имеет значение false, ваш статус «подозрение на сонливость» - СДЕЛАЙТЕ работу своего окна обслуживания И установите будильник на 15 минут в будущем.
при следующем изменении режима.
если ACTION_DEVICE_IDLE_MODE_CHANGED срабатывает перед тревогой, а isDeviceIdleMode() имеет значение true, значит, это было окно обслуживания. "выход из дремоты ложный", (отключение будильника).
если тревога срабатывает первой, это означает, что это было подтверждено «вне дремоты».
Время дремоты указано в документах. обязательно проверьте это в первую очередь. (может измениться в будущем, как это уже произошло * может быть, есть константа для получения этого значения - я не знаю).
я считаю это хаком, а не полноценным решением. но это работает до тех пор, пока любая будущая расширенная работа над Android не предоставит еще один вызов ACTION_DEVICE_IDLE_MODE_CHANGED со статусом «вне дремоты».
person
guest
schedule
30.08.2017