Как сделать мобильный спящим программным путем

Мне нужно сделать приложение, которое отключит мобильный экран и программно спать. Например, если экран включен более 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. Но у меня есть это разрешение в моем манифесте.

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

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

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