当设置处于自动模式时,如何获得之前的屏幕亮度值?

时间:2013-03-14 07:56:45

标签: android screen android-preferences android-windowmanager

显示设置中的亮度处于自动模式时,我希望获得之前的屏幕亮度。

我尝试使用以下代码:

WindowManager.LayoutParams lp = getWindow().getAttributes();
previousScreenBrightness = lp.screenBrightness;

previousScreenBrightness的值始终为-1.0,即使我将手机放在黑暗或光明的地方。

亮度设置不在自动模式下时,我可以得到正确的值。

我使用的是Android 4.2。

1 个答案:

答案 0 :(得分:5)

你应该使用

int previousScreenBrightness = android.provider.Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS);

获取系统亮度值(与设置>显示>亮度中的亮度值相同)。(范围从0到255)

从WindowManager.LayoutParams中获得的内容( -1.0 )表示 BRIGHTNESS_OVERRIDE_NONE,表示您当前的活动亮度值未被WindowManager.LayoutParams属性覆盖。当值设置为 0到1 时,您当前的活动亮度值将受设置的影响。