I have a GDK immersion application, where the launcher Activity
acquires aSCREEN_DIM_WAKE_LOCK WakeLock
. The app also has a Service which will receive chat messages and starts an Intent
for an Activity
to display each one. Whenever the message Activity
is opened, I want to brighten the screen. However, all of the methods I have found do not seem to work.
For example, adding the following into onResume
has no effect:
Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 1.0f;
getWindow().setAttributes(lp);
To better illustrate the problem, here is the sequence of events in my app:
How can I get the screen to brighten?
I was able to find a solution by acquiring a SCREEN_BRIGHT_WAKE_LOCK
with the ACQUIRE_CAUSES_WAKEUP
flag in onResume
. For example:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag");
wl.acquire();
//..screen will stay on during this section..
wl.release();
Try to put the code before the call to setContentView
in onCreate (the brightness level won't update otherwise), something like:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 1.0f;
getWindow().setAttributes(lp);
// example
setContentView(R.layout.main);
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