3

我正在尝试创建一个应用程序,它将以编程方式设置 android 设备的亮度。我已经设法使用以下代码更改设备亮度:

BackLightValue = (float)arg1/100;
BackLightSetting.setText(String.valueOf(BackLightValue));

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);

我已使用以下代码检索当前系统亮度值:

try {
    BackLightValue = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS);
} catch(Exception e) {}

上面的代码应该给我当前的亮度设置值,但是当我启动一个应用程序时,它显示的默认值是 50%。

出了什么问题?

4

1 回答 1

8

这是正确的行为,因为将 screenBrightness 设置为 -1 会将亮度设置为当前系统亮度级别。

int curBrightnessValue = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS,-1);

清单文件中的权限。

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
于 2012-08-17T06:27:58.340 回答