Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dim screen while user inactive

I have an app which is used for lets say 4 hours, but only every 5 minutes a user needs to make an input or read the screen. Putting the phone to sleep and locking the screen is a bit annoying. So I have two options:

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); which doesn't lock the screen but the screen is always bright, I would like to dim it while there is no activity. Just because of battery life span, or doesn't that matter that much for these 4 hours?

  2. a wake lock SCREEN_DIM_WAKE_LOCK which does as well what I want, but I was told rather to use option 1 above.

Can I achieve the wanted somehow without a wake lock?

like image 449
AndyAndroid Avatar asked Jan 26 '11 10:01

AndyAndroid


1 Answers

You can use:

WindowManager.LayoutParams lp = getWindow().getAttributes();  
lp.dimAmount=1.0f; 
getWindow().setAttributes(lp);  

to dim/undim the screen when you want to.

lp.dimAmount=1.0f will dim the screen totally but you can set it at your will with values from 0 (no dim at all) to 1.0f.

You can set a timer to call this after 5 minutes of inactivity and then turn the screen "back on" on any touch event or such maybe.

like image 113
rjam Avatar answered Nov 20 '22 17:11

rjam