我们可以通过代码来实现设置android的屏幕亮度,这里简单备忘一下:
public class ScreenBrightnessUtils { public void openSettingAct(Context context) { //http://developer.android.com/reference/android/provider/Settings.html#ACTION_DISPLAY_SETTINGS Intent intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS); context.startActivity(intent); } // 判断是否开启了自动亮度调节 public static boolean isAutoBrightness(Activity act) { boolean automicBrightness = false; ContentResolver aContentResolver = act.getContentResolver(); try { automicBrightness = Settings.System.getInt(aContentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; } catch (Exception e) { } return automicBrightness; } // 改变亮度 public static void setLightnessA(Context context,int value) { try { Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value); } catch (Exception e) { } } // 改变亮度 public static void setLightnessB(Activity act, int value) { try { Settings.System.putInt(act.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value); WindowManager.LayoutParams lp = act.getWindow().getAttributes(); lp.screenBrightness = (value <= 0 ? 1 : value) / 255f; act.getWindow().setAttributes(lp); } catch (Exception e) { } } // 获取亮度 public static int getLightness(Activity act) { return Settings.System.getInt(act.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, -1); } // 停止自动亮度调节 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); } }
CONTENTS
XML:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
备注:
1)改变亮度有2个方法,输入值范围为【0,255】。有两个的原因是作者用手机测试了一下,发现各个手机的情况不一样。具体还要在项目中测试。
发表评论