微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android设置屏幕亮度为0关闭屏幕 – 如何避免

Android 2.3.3中,我尝试使用以下代码将屏幕亮度设置为0:

Window myWindow = getwindow();
WindowManager.LayoutParams winParams = myWindow.getAttributes();
winParams.screenBrightness = 0.0f;
myWindow.setAttributes(winParams);

并安排一个Handler.postDelayed()在1秒内启动一个Runnable,将亮度恢复为完全,如下所示:

Window myWindow = getwindow();
WindowManager.LayoutParams winParams = myWindow.getAttributes();
winParams.screenBrightness = 1.0f;
myWindow.setAttributes(winParams);

然而,屏幕似乎完全关闭,在这1秒后没有任何反应.对Runnable进行一些跟踪清楚地表明它是由Handler发布的.

我也尝试将这两个调用封装到PARTIAL_WAKE_LOCK中,没有结果.无论如何,Runnable工作,所以在这里没有多少使用唤醒锁.

此外,如果亮度设置为0.01f不到0f,它工作正常 – 1秒后它会恢复到满.

任何人都可以建议如何在将亮度设置为0后再次恢复亮度?

解决方法

使用此代码

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getwindow().setAttributes(params);

没有关闭屏幕,它使屏幕尽可能暗淡.使用FLAG_KEEP_SCREEN_ON意味着您永远不会允许屏幕关闭,即使特定设备允许您将屏幕亮度设置为全关,您的设备也将进入低功耗模式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐