Android 亮度调节
AOSP中最大值 最小值
frameworks/base/core/res/res/values/config.xml
<integer name="config_screenBrightnessSettingMaximum">255</integer>
<item name="config_screenBrightnessSettingMaximumFloat" format="float" type="dimen">-2</item>
系统设置中默认初始值
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integer name="def_screen_brightness">102</integer>
<bool name="def_screen_brightness_automatic_mode">false</bool>
设置APP亮度
private float getAppBrightness() {
Window window = getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
return lp.screenBrightness;
}
protected void setAppBrightness(float brightness) {
Window window = getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = brightness;
window.setAttributes(lp);
}
设置系统亮度
private int getSystemBrightness() {
/*
//android.permission.WRITE_SETTINGS
Settings.System.putInt(
getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
*/
try {
return Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
} catch (Settings.SettingNotFoundException e) {
return -1;
}
}
protected void setSystemBrightness(int value) {
ContentResolver contentResolver = getContentResolver();
int brightness = (int) ((value <= 0 ? 1 : value) / 255f);
Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, value);
}