android 系统亮度设置
2015-09-28 15:13
381 查看
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中String资源文件的format方法
- Android 实用技巧 --- 命令godir (转载)
- android fragment和activity的区别
- Android获取图片大小以及获取指定大小的缩略图
- 【Android】缩略图Thumbnails
- Android 开发问题及解决汇总
- android:inputType常用取值
- Android第五十一期 - 即时通讯视频聊天
- Android第五十一期 - 即时通讯视频聊天
- Android多媒体
- Android Studio
- Android系统搜索对话框(浮动搜索框)的使用
- Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
- Android中预估view的大小(宽高)
- 如何扫描出android系统媒体库中视频文件
- Android之GPS定位详解
- Android常见的几种RuntimeException
- AndroidAnnotations注解
- ubuntu下面好用的查看android数据库的工具
- Android 中java.lang.ClassCastException 异常