【问题标题】:Android setting screen brightness to 0 turns off the screen - how to avoidAndroid将屏幕亮度设置为0会关闭屏幕-如何避免
【发布时间】:2012-07-30 00:52:07
【问题描述】:

在 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 中添加一些 trace 可以清楚地表明它是由 Handler 启动的。

我也尝试将这两个调用包含在 PARTIAL_WAKE_LOCK 中,但没有结果。无论如何,Runnable 有效,所以这里没有太多使用唤醒锁。

此外,如果将亮度设置为 0.01f 而不是 0f,它可以正常工作 - 1 秒后它会恢复到全亮。

谁能告诉我如何在将亮度设置为0后再次恢复到全亮度?

【问题讨论】:

  • 您是否试图避免关闭屏幕?还是您要关闭屏幕然后再打开?

标签: android screen brightness


【解决方案1】:

使用此代码

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

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

【讨论】:

  • 我正在使用这个确切的代码,但仍然出现上述问题。屏幕熄灭(黑色)后,它再也不会将亮度设置为 1.0f..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
相关资源
最近更新 更多