我正在尝试创建一个应用程序,它将以编程方式设置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%.
出了什么问题?
解决方法:
这是正确的行为,因为将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" />