屏幕亮度调节(网络整理,去伪存真)

废话不多说了,网上搜刮得来的,我只是进行了一些实验后,成功了,再加上自己的一些想法弄得一篇文章,大家可以看看,非喜勿喷啊!奋斗

import android.app.Activity;
import android.content.ContentResolver;
import android.net.Uri;
import android.provider.Settings.SettingNotFoundException;
import android.view.WindowManager;

/**
 * 屏幕亮度设置和保存
 * 
 * @author luckchoudog
 */
public class ScreenBrightnessTools {

	// Android的屏幕亮度好像在2.1+的时候提供了自动调节的功能。
	// 所以,如果当开启自动调节功能的时候, 我们进行调节好像是没有一点作用的。
	// 因此,在调节屏幕亮度之前首先进行判断设备是否开启自动亮度调节。
	// 使用方法:ScreenBrightnessTools.isScreenAutoBrightness(getContentResolver());
	/**************************************
	 * 判断设备屏幕是否开启了自动亮度调节*
	 **************************************/
	public static boolean isScreenAutoBrightness(ContentResolver contentResolver) {
		boolean automicBrightness = false;
		try {
			automicBrightness = android.provider.Settings.System.getInt(contentResolver, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE) == android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
		} catch (SettingNotFoundException e) {
			e.printStackTrace();
		}
		return automicBrightness;
	}

	// 如果设备真的是自动亮度调节,咱们想自己调节,得先将系统的关掉
	/********************
	 * 停止自动亮度调节 *
	 ********************/
	public static void stopAutoBrightness(Activity activity) {
		android.provider.Settings.System.putInt(activity.getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
	}

	// 如果自己想再次开启自动亮度调节,那就再次开启呗,咱们得能开能关是不是
	/*******************
	 * 开启亮度自动调节*
	 *******************/
	public static void startAutoBrightness(Activity activity) {
		android.provider.Settings.System.putInt(activity.getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
	}

	// 获取当前屏幕亮度,获取到的数据是0~255之间的数字,255表示最亮。
	/*******************
	 * 获取当前屏幕亮度*
	 *******************/
	public static int getScreenBrightness(Activity activity) {
		int nowBrightnessValue = 0;
		ContentResolver resolver = activity.getContentResolver();
		try {
			nowBrightnessValue = android.provider.Settings.System.getInt(resolver, android.provider.Settings.System.SCREEN_BRIGHTNESS);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return nowBrightnessValue;
	}

	// 接下来设置屏幕亮度
	/**********************************************************
	 * 设置设备屏幕亮度,传入Activity和想要的亮度数值(0~255)*
	 **********************************************************/
	public static void setBrightness(Activity activity, int brightness) {
		WindowManager.LayoutParams layoutParams = activity.getWindow().getAttributes();
		layoutParams.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
		activity.getWindow().setAttributes(layoutParams);
	}

	// 最后一步,保存自己的设置
	/*******************
	 * 保存亮度设置状态*
	 *******************/
	public static void saveBrightness(ContentResolver contentResolver, int brightness) {
		Uri uri = android.provider.Settings.System.getUriFor("screen_brightness");
		android.provider.Settings.System.putInt(contentResolver, "screen_brightness", brightness);
		contentResolver.notifyChange(uri, null);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值