码迷,mamicode.com
首页 > 其他好文 > 详细

与屏幕亮度调节相关的各种方法整理

时间:2014-06-30 16:16:29      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:android   blog   java   2014   art   cti   

public class SystemManager {

	private Context mContext;
	private static SystemManager sInstance;

	private SystemManager(final Context context) {
		mContext = context;
	}

	public static SystemManager init(final Context context) {
		if (null == sInstance) {
			sInstance = new SystemManager(context);
		}
		return sInstance;
	}

	public static SystemManager getInstance() {
		return sInstance;
	}

	// 判断是否是自动调光模式
	public boolean isAutoBrightness() {
		boolean automicBrightness = false;
		try {
			ContentResolver resolver = mContext.getContentResolver();
			automicBrightness = Settings.System.getInt(resolver,
					Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
		} catch (SettingNotFoundException e) {
			e.printStackTrace();
		}
		return automicBrightness;
	}

	// 设置屏幕亮度
	public void setBrightness(Activity activity, int brightness) {
		WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
		lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
		activity.getWindow().setAttributes(lp);
	}

	// 保存屏幕亮度
	public void saveBrightness(int brightness) {
		ContentResolver resolver = mContext.getContentResolver();
		Uri uri = android.provider.Settings.System
				.getUriFor("screen_brightness");
		android.provider.Settings.System.putInt(resolver, "screen_brightness",
				brightness);
		resolver.notifyChange(uri, null);
	}

	// 开启自动调光模式
	public void startAutoBrightness() {
		ContentResolver resolver = mContext.getContentResolver();
		Settings.System.putInt(resolver,
				Settings.System.SCREEN_BRIGHTNESS_MODE,
				Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
		Uri uri = android.provider.Settings.System
				.getUriFor("screen_brightness");
		resolver.notifyChange(uri, null);
	}

	// 关闭自动调光模式
	public void stopAutoBrightness() {
		ContentResolver resolver = mContext.getContentResolver();
		Settings.System.putInt(resolver,
				Settings.System.SCREEN_BRIGHTNESS_MODE,
				Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
		Uri uri = android.provider.Settings.System
				.getUriFor("screen_brightness");
		resolver.notifyChange(uri, null);
	}

	// 获得当前屏幕亮度
	public int getScreenBrightness() {
		int nowBrightnessValue = 0;
		try {
			ContentResolver resolver = mContext.getContentResolver();
			nowBrightnessValue = android.provider.Settings.System.getInt(
					resolver, Settings.System.SCREEN_BRIGHTNESS);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return nowBrightnessValue;
	}

	// 设置光亮模式
	public void setBrightnessMode(int mode) {
		Settings.System.putInt(mContext.getContentResolver(),
				Settings.System.SCREEN_BRIGHTNESS_MODE, mode);
	}

	// 获得亮度模式
	public int getBrightnessMode() {
		try {
			return Settings.System.getInt(mContext.getContentResolver(),
					Settings.System.SCREEN_BRIGHTNESS_MODE);
		} catch (SettingNotFoundException e) {
			return Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
		}
	}

}


权限

 <uses-permission android:name="android.permission.WRITE_SETTINGS" />



与屏幕亮度调节相关的各种方法整理,布布扣,bubuko.com

与屏幕亮度调节相关的各种方法整理

标签:android   blog   java   2014   art   cti   

原文地址:http://blog.csdn.net/zhaokaiqiang1992/article/details/35814785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!