接受别人的代码,结果有一句代码不断报错
try {
IPowerManager power = IPowerManager.Stub.asInterface(
ServiceManager.getService("power"));
if (power != null) {
power.setTemporaryScreenBrightnessSettingOverride(140); //这一句不断报错
}
} catch (RemoteException doe) {
}
我看了一下错误信息,是要求亮度权限DEVICE_POWER,结果动态申请权限之后还是报错
于是我选择放弃这段代码,选择手动调节亮度
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC //1,自动调节亮度
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL//0,手动调节亮度
ContentResolver contentResolver = getContentResolver(); try { int mode = Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE); if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); }
//手动选择亮度 private void setWindowBrightness(int brightness) { Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.screenBrightness = brightness / 255.0f; window.setAttributes(lp); }