package tv.danmaku.android.util; import android.app.Activity; import android.content.ContentResolver; import android.net.Uri; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.view.WindowManager; public class BrightnessHelper { public static boolean isAutoBrightness(ContentResolver aContentResolver) { boolean automicBrightness = false; try { automicBrightness = Settings.System.getInt(aContentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; } catch (SettingNotFoundException e) { e.printStackTrace(); } return automicBrightness; } public static float getScreenBrightness(Activity activity) { float nowBrightnessValue = -1; ContentResolver resolver = activity.getContentResolver(); try { nowBrightnessValue = android.provider.Settings.System.getInt( resolver, Settings.System.SCREEN_BRIGHTNESS, -1); nowBrightnessValue /= 255; } catch (Exception e) { e.printStackTrace(); } return nowBrightnessValue; } public static void setBrightness(Activity activity, float brightness) { // Settings.System.putInt(activity.getContentResolver(), // Settings.System.SCREEN_BRIGHTNESS_MODE, // Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); WindowManager.LayoutParams lp = activity.getWindow().getAttributes(); // some ROM may ANF if set brightness to 0 lp.screenBrightness = Math.max(brightness, 0.01f); activity.getWindow().setAttributes(lp); } public static void stopAutoBrightness(Activity activity) { Settings.System.putInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } public static void startAutoBrightness(Activity activity) { Settings.System.putInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); } public static void saveBrightness(ContentResolver resolver, int brightness) { Uri uri = Settings.System.getUriFor("screen_brightness"); Settings.System.putInt(resolver, "screen_brightness", brightness); // resolver.registerContentObserver(uri, true, myContentObserver); resolver.notifyChange(uri, null); } }