1、工具类
/*** 作者:created by meixi* 邮箱:15913707499@163.com* 日期:2019/3/20 10*/public class BrightnessTools {/*** 判断是否开启了自动亮度调节*/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 (Settings.SettingNotFoundException e) {e.printStackTrace();}return automicBrightness;}/*** 获取屏幕的亮度** @param activity* @return*/public static int getScreenBrightness(Activity activity) {int nowBrightnessValue = 0;ContentResolver resolver = activity.getContentResolver();try {nowBrightnessValue = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);} catch (Exception e) {e.printStackTrace();}return nowBrightnessValue;}/*** 设置亮度** @param activity* @param brightness*/public static void setBrightness(Activity activity, int brightness) {// Settings.System.putInt(activity.getContentResolver(),// Settings.System.SCREEN_BRIGHTNESS_MODE,// Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);WindowManager.LayoutParams lp = activity.getWindow().getAttributes();lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);Log.d("lxy", "set lp.screenBrightness == " + lp.screenBrightness);activity.getWindow().setAttributes(lp);}// 那么,能设置了,但是为什么还是会出现,设置了,没反映呢?// 嘿嘿,那是因为,开启了自动调节功能了,那如何关闭呢?这才是最重要的:/*** 停止自动亮度调节** @param activity*/public static void stopAutoBrightness(Activity activity) {Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}/*** 开启亮度自动调节** @param activity*/public static void startAutoBrightness(Activity activity) {Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);}// 至此,应该说操作亮度的差不多都有了,结束!// 哎,本来认为是应该结束了,但是悲剧得是,既然像刚才那样设置的话,只能在当前的activity中有作用,一段退出的时候,会发现毫无作用,悲剧,原来是忘记了保存了。汗!/*** 保存亮度设置状态** @param resolver* @param brightness*/public static void saveBrightness(ContentResolver resolver, int brightness) {Uri uri = android.provider.Settings.System.getUriFor("screen_brightness");android.provider.Settings.System.putInt(resolver, "screen_brightness",brightness);// resolver.registerContentObserver(uri, true, myContentObserver);resolver.notifyChange(uri, null);}
}
2、activity设置页面亮度
/*** 设置相机亮度,不够200自动调整亮度到200*/
private void initBrightness() {int brightness = BrightnessTools.getScreenBrightness(TestClass.this);Log.i("Lgq","s....."+brightness);if (brightness < 200) {BrightnessTools.setBrightness(this, 200);}
}
Android 获取光线强弱,开启闪光灯,关闭闪光灯:https://blog.csdn.net/meixi_android/article/details/88965994