Попытка отключить Android-устройство, но PowerManager не содержит метода goToSleep (long)

Я пытаюсь скрыть устройство, и я нашел ссылки по всему поводу использования метода goToSleep (long) класса PowerManager, но я не вижу его в документация и не работает, когда я пытаюсь использовать его в своем коде.

Документация для Android не содержит метода goToSleep, который я мог видеть.

Мой код:

private void sleepDevice() {
 try {
 PowerManager powerMgr = (PowerManager) getSystemService(Context.POWER_SERVICE);
 long time = 1000;
 powerMgr.goToSleep(time);
 } catch (Exception ex) {
 updateStatus("Error attempting to reboot device.");
 updateStatus(ex.getLocalizedMessage());
 }
}

Android Studio не позволяет компиляции кода с сообщением "Невозможно разрешить метод" goToSleep (long).

Я даже не рассматриваю этот метод как устаревший. Кроме того, мне не нужно беспокоиться о разрешениях безопасности, вызов предназначен для запуска на корневых устройствах или изящно из-за некорневых устройств.

2 ответа

Вы можете использовать DeviceAdministrator, но вам нужен пользователь, чтобы предоставить вам эти права.


PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager
 .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR_OWN_TAG");
wl.acquire();
wl.release();

Попробуйте этот способ и дайте некоторую обратную связь.

licensed under cc by-sa 3.0 with attribution.