androidwakelock

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?


Solution

  • 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.