Как заставить мобильный спать спать программно

Мне нужно сделать приложение, которое выключит экран мобильного телефона и программно перейдет в спящий режим. Например, если экран включен более 5 минут без user_present, я должен выключить его. Я пытался использовать PowerManager (функция goToSleep() должна делать именно то, что я хочу, но, похоже, не работает):

PowerManager pm = (PowerManager) m_context.getSystemService(Context.POWER_SERVICE);


  if (pm.isScreenOn() )
   {
    pm.goToSleep(System.currentTimeMillis() + 1000
   }

У меня есть следующее разрешение в моем манифесте:

<uses-permission android:name="android.permission.DEVICE_POWER"/>

Выдает исключение: java.lang.SecurityException: ни у пользователя 10068, ни у текущего процесса нет android.permission.DEVICE_POWER. но у меня есть это разрешение в моем манифесте.

Есть ли другой способ сделать это, не рутируя мой телефон?

1 ответ

Решение

android.permission.DEVICE_POWER предоставляется только системным приложениям, сторонние приложения не получают этого разрешения.

Если вы не держите WakeLock и если вы уменьшаете SCREEN_OFF_TIMEOUT тогда вы сможете автоматически засыпать через 5 минут

Другие вопросы по тегам