问题
My app saves the user original brightness with:
originalBrightness = Settings.System.SCREEN_BRIGHTNESS;
and then changes it while the program running.
originalBrightness is private global string. Now what I am trying to do is when the user clicks on "Home" or when the app paused the original screen is need to be set again, I have tried to do this like this but the app crushes:
public void onPause() {
super.onPause();
int brightness = Integer.getInteger(originalBrightness);
setBrightness(brightness);
}
private void setBrightness(int brightness) {
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = brightness / 100.0f;
getWindow().setAttributes(layoutParams);
}
Is there away to male it work? Thanks
回答1:
Try Using Settings.System.SCREEN_BRIGHTNESS
to set system default brightness as:
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,brightness /100.0f); // 0-255
and add these permission's in manifest :
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
来源:https://stackoverflow.com/questions/13212835/change-screen-brightness-onpause-android-app