For a long time I thought that I knew how to stop the screen from going into sleep mode, I simply used this code in my Activity:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
However, I realized that this only worked when my phone was in "developer mode", ie when the USB debugging (Settings --> Developer options --> USB debugging) was enabled/checked. Then the above code indeed stops the screen/device to go to sleep.
When that debugging is not checked, then my screen goes to sleep like there's no tomorrow. I am running Android 4.04 on my device, and
android:minSdkVersion="12"
android:targetSdkVersion="16"
I have tested with Commonsware's suggestion, and added the setKeepScreenOn() to the code, so it looks like this:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
View root = findViewById(android.R.id.content);
if (root != null)
root.setKeepScreenOn(true);
I have also checked so that this code is actually executed, and it is. But it doesn't change a thing.
i was facing same problem, i was using one activity for my project and all the other screen are fragments then i used the android:keepScreenOn="true"
in main activity.
please try to use this and let me know if you didn't get your desire result.
Thanks.
Only solution which realy works in my app is WakeLock in main application class. Unfortunately the SCREEN_BRIGHT_WAKE_LOCK flag is deprecated!
public class MyApp extends Application {
PowerManager.WakeLock screenOnWakeLock;
@Override
public void onCreate() {
super.onCreate();
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"ScreenlockTag");
wakeLock.acquire();
}
@Override
public void onTerminate()
{
if (screenOnWakeLock != null && screenOnWakeLock.isHeld())
screenOnWakeLock.release();
super.onTerminate();
}
}
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