import android.app.Activity; import android.content.ContentResolver; import android.content.Context; import android.net.Uri; import android.provider.Settings; import android.util.Log; import android.view.WindowManager; import cn.com.geartech.app.model.ContextModel; /** * 系统亮度设置 * * @author qiw * @version 1.0, 2013-9-13 */ public class BrightnessSettings { private static final String TAG = BrightnessSettings.class.getSimpleName(); Context context; /** * 获得当前系统的亮度模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度 */ public static int getBrightnessMode() { int brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; try { brightnessMode = Settings.System.getInt(ContextModel.getInstance().getContext().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE); } catch (Exception e) { Log.e(TAG, "获得当前屏幕的亮度模式失败:", e); } return brightnessMode; } /** * 设置当前系统的亮度模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度 */ public static void setBrightnessMode(int brightnessMode) { try { Settings.System.putInt(ContextModel.getInstance().getContext().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, brightnessMode); } catch (Exception e) { Log.e(TAG, "设置当前屏幕的亮度模式失败:", e); } } /** * 获得当前系统的亮度值: 0~255 */ public static int getSysScreenBrightness() { int screenBrightness = MAX_BRIGHTNESS; try { screenBrightness = Settings.System.getInt(ContextModel.getInstance().getContext().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); if(screenBrightness > MAX_BRIGHTNESS) screenBrightness = MAX_BRIGHTNESS; } catch (Exception e) { Log.e(TAG, "获得当前系统的亮度值失败:", e); } return screenBrightness; } /** * 设置当前系统的亮度值:0~255 */ public static void setSysScreenBrightness(int brightness) { try { ContentResolver resolver = ContextModel.getInstance().getContext().getContentResolver(); Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS); Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, brightness); resolver.notifyChange(uri, null); // 实时通知改变 } catch (Exception e) { Log.e(TAG, "设置当前系统的亮度值失败:", e); } } /** * 设置屏幕亮度,这会反映到真实屏幕上 * * @param activity * @param brightness */ public static void setActScreenBrightness(final Activity activity, final int brightness) { final WindowManager.LayoutParams lp = activity.getWindow().getAttributes(); lp.screenBrightness = brightness / (float) MAX_BRIGHTNESS; activity.getWindow().setAttributes(lp); } /** * 还原亮度模式和亮度值的设置 * * @param act * @param brightnessMode * @param brightness */ private static void recoverBrightnessSetting(final Activity act, final int brightnessMode, final int brightness) { setBrightnessMode(brightnessMode); setSysScreenBrightness(brightness); setActScreenBrightness(act, -MAX_BRIGHTNESS); } /** 可调节的最小亮度值 */ public static final int MIN_BRIGHTNESS = 30; /** 可调节的最大亮度值 */ public static final int MAX_BRIGHTNESS = 255; }
android 系统亮度设置
最新推荐文章于 2023-07-07 06:45:00 发布