Попытка отключить 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.