用户不活动时屏幕变暗

And*_*oid 10 android wakelock

我有一个应用程序,用于说4小时,但只有每5分钟用户需要输入或阅读屏幕.让手机进入睡眠状态并锁定屏幕有点烦人.所以我有两个选择:

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);这不会锁定屏幕,但屏幕总是很亮,我想在没有活动时调暗它.仅仅是因为电池寿命延长,或者这4小时内没有那么重要?

  2. 一个唤醒锁SCREEN_DIM_WAKE_LOCK 也能满足我的需求,但我被告知要使用上面的选项1.

没有唤醒锁,我可以以某种方式实现想要吗?

Ric*_*ick 13

您可以使用:

WindowManager.LayoutParams lp = getWindow().getAttributes();  
lp.dimAmount=1.0f; 
getWindow().setAttributes(lp);  
Run Code Online (Sandbox Code Playgroud)

在你想要的时候调暗/取消屏幕.

lp.dimAmount=1.0f 将完全调暗屏幕,但你可以按照自己的意愿设置它,值为0(完全没有暗淡)到1.0f.

你可以设置一个计时器,在5分钟不活动后调用它,然后在任何触摸事件或类似的情况下"重新打开"屏幕.


hac*_*bod 5

即使是昏暗的屏幕也会在4小时内消耗大量电池.你真的不想像这样保持屏幕.我认为你最好使用FLAG_SHOW_WHEN_LOCKED,允许屏幕关闭,但让用户在重新打开时立即进入你的应用程序而无需先通过锁定屏幕.

如果您确实需要保持屏幕暗淡,可以使用SCREEN_DIM_WAKE_LOCK.如果您想要更多控制,您还可以尝试使用WindowManager.LayoutParams.screenBrightness直接设置屏幕亮度.