1

当显示设置中的亮度处于自动模式时,我想获得以前的屏幕亮度。

我尝试使用以下代码:

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

但是即使我将手机放在黑暗或明亮的地方,它的价值previousScreenBrightness也一直存在。-1.0

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

我使用的是安卓 4.2。

4

1 回答 1

5

你应该使用

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

获取系统亮度值(与Settings>Display>Brightness中的亮度值相同)。(范围从 0 到 255)

您从 WindowManager.LayoutParams 获得的( -1.0 )表示BRIGHTNESS_OVERRIDE_NONE,这意味着您当前的Activity 亮度值不会被 WindowManager.LayoutParams 属性覆盖。当该值设置为0 到 1时,您当前的 Activity 亮度值会受到设置的影响。

于 2013-05-31T07:55:44.733 回答