I need to do an application that turn off the mobile screen and go to sleep programmatically. For example if screen is on for more than 5 minutes without user_present, I should turn it off. I tried to use PowerManager (goToSleep() function should do exactly what I want, but it seems not working):
PowerManager pm = (PowerManager) m_context.getSystemService(Context.POWER_SERVICE);
  if (pm.isScreenOn() )
   {
    pm.goToSleep(System.currentTimeMillis() + 1000
   }
I have the following permission in my manifest:
<uses-permission android:name="android.permission.DEVICE_POWER"/>
It throws an exception: java.lang.SecurityException: Neither user 10068 nor current process has android.permission.DEVICE_POWER. but I have this permission in my manifest.
Is there another method for doing this, without rooting my phone?
android.permission.DEVICE_POWER is granted only to system apps, third party apps do not get this permission. 
If you are not holding wakelock and if you reduce SCREEN_OFF_TIMEOUT , then you should be able to achieve going to sleep automatically after 5 mins
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With