Как заснуть на моем устройстве Android в определенное время и проснуться в другое время программно? - PullRequest
0 голосов
/ 02 мая 2018

Я создаю приложение для Android, которое имеет функции для сна устройства на основе определенных условий и пробуждения на основе некоторых других условий. До API 21 существовал метод powerManager.goToSleep() в PowerManager, который использовал этот трюк. Но теперь тот же метод больше не доступен. Есть ли другой способ сделать это?

int defaultTurnOffTime = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 60000);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, defaultTurnOffTime);

Вышеупомянутый код - кое-что, что я получил до сих пор. Но, похоже, это не работает для меня. Пожалуйста, предложите, если есть какой-либо способ достичь функциональности.

1 Ответ

0 голосов
/ 02 мая 2018

Вы пытались использовать PowerManager.Wakelock ?

Получает блокировку после тайм-аута.

Гарантирует, что устройство включено на уровне, запрошенном при создании пробуждения от блокировки. Блокировка будет снята по истечении заданного времени ожидания.

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
 wl.acquire();
   ..screen will stay on during this section..
 wl.release();

Есть 4 типа флагов

Flag Value              CPU Screen Keyboard
PARTIAL_WAKE_LOCK       On* Off    Off
SCREEN_DIM_WAKE_LOCK    On  Dim    Off
SCREEN_BRIGHT_WAKE_LOCK On  Bright Off
FULL_WAKE_LOCK          On  Bright Bright
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...