在当前的一些设置系统亮度的文章中一般的情况都说了一些如何来设置亮度的方式,但是从根本上,要让这个功能跑起来,还需要注意一些东西。
首先系统有自动亮度这个设置的,需要先将自动模式改动成手动模式,才可以调取到系统的设置。
那么话不多说,各位应该都知道一般的情况解决了,直接上代码吧:
/** * 设置当前页面的亮度 * @param context * @param brightness */ private void setLight(Activity context, int brightness) { WindowManager.LayoutParams lp = context.getWindow().getAttributes(); lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f); context.getWindow().setAttributes(lp); } /** * 设置成系统的亮度 * @param activity * @param brightness */ public void saveBrightness(Activity activity, int brightness) { //先需要改变成手动的模式才能进行亮度设置 setBrightnessMode(activity,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); ContentResolver contentResolver = activity.getContentResolver(); Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS); Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); activity.getContentResolver().notifyChange(uri, null); } /** * 设置当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度 */ public static void setBrightnessMode(Activity activity, int brightMode) { Settings.System.putInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, brightMode); }
一般在调用,往系统中国写配置的时候,就应该先设置一下手动亮度
同时别忘了,在权限表里面添加一个权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
that's all , thx!