繁体   English   中英

Android将屏幕亮度设置为0会关闭屏幕-如何避免

[英]Android setting screen brightness to 0 turns off the screen - how to avoid

在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意味着你将永远不会让屏幕熄灭,设备将进入低功耗模式,即使特定的设备,让您的屏幕亮度设置为全关

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM