Android的设置屏幕亮度为0关闭屏幕 - 如何避免
问题描述:
在安卓2.3.3,我想将屏幕亮度使用此代码设置为0:Android的设置屏幕亮度为0关闭屏幕 - 如何避免
Window myWindow = getWindow();
WindowManager.LayoutParams winParams = myWindow.getAttributes();
winParams.screenBrightness = 0.0f;
myWindow.setAttributes(winParams);
和调度处理程序。 postDelayed()合作推出一个Runnable在1秒设置亮度回全是这样的:
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
意味着即使特定设备允许您将屏幕亮度设置为全屏,也不会允许屏幕熄灭并且设备将进入低功耗模式。
+0
我正在使用此确切代码,并且上述问题仍然出现。屏幕熄灭后(黑色),它不会再次将亮度设置为1.0f .. – Sandra 2014-02-03 09:37:59
您是否试图避免关闭屏幕?或者你是否试图关闭屏幕然后再打开它? – 2012-07-30 00:55:32