最近有一个调整屏幕亮度的需求,在网上找了各种代码,心乱如麻。不是长篇大论说源码的,就是只言片语就上代码的,关键是代码还不能直接用。
这里面确实是有一些坑,在这里我会把可以用的代码写出来,并且告诉大家坑在哪里。希望可以帮到大家。
经过我的初步分析,屏幕的亮度分为两种情况:
1、全局屏幕亮度,作用于整个手机环境。
2、当前屏幕亮度,仅作用于当前的activity。
我先上第一种情况的代码
/**
* Created by asus on 2016/12/8.
* 屏幕亮度调节器
*/
public class ScreenManager {
/**
* 获得当前屏幕亮度的模式
*
* @return 1 为自动调节屏幕亮度,0 为手动调节屏幕亮度,-1 获取失败
*/
public static int getScreenMode() {
int mode = -1;
try {
mode = Settings.System.getInt(APP.context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return mode;
}
/**
* 获得当前屏幕亮度值
*
* @return 0--255
*/
public static int ge