ANDROID 背光调节
Android的屏幕亮度好像在2.1+的时候提供了自动调节的功能,所以,如果当开启自动调节功能的时候, 我们进行调节好像是没有一点作用的,这点让我很是无语,结果只有进行判断,看是否开启了屏幕亮度的自动调节功能。
/**
* 判断是否开启了自动亮度调节
*
* @param aContext
* @return
*/
public static boolean isAutoBrightness(ContentResolver aContentResolver) {
boolean automicBrightness = false;
try {
automicBrightness = Settings.System.getInt(aContentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
return automicBrightness;
}
然后就是要觉得当前的亮度了,这个就比较纠结了:
/**
* 获取屏幕的亮度
*
* @param activity
* @return
*/
public static int getScreenBrightness(Activity activity) {
int nowBrightnessValue = 0;
ContentResolver resolver = activity.getContentResolver();
try {
nowBrightnessValue = android.provider.Settings.System.getInt(
resolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Exception e) {
e.printStackTrace();
}
return nowBrightnessValue;
}
那如何修改屏幕的亮度呢?
/**
* 设置亮度
*
* @param activity
* @param brightness
*/
public static void setBrightness(Activity activity, int brightness) {
// Settings.System.putInt(activity.getContentResolver(),
// Settings.System.SCREEN_BRIGHTNESS_MODE,
// Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
activity.getWindow().setAttributes(lp);
}
那么,能设置了,但是为什么还是会出现,设置了,没反映呢?
嘿嘿,那是因为,开启了自动调节功能了,那如何关闭呢?这才是最重要的:
/**
* 停止自动亮度调节
*
* @param activity
*/
public static void stopAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
能开启,那自然应该能关闭了哟哟,那怎么关闭呢?很简单的:
/**
* 开启亮度自动调节
*
* @param activity
*/
public static void startAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
至此,应该说操作亮度的差不多都有了,结束!
哎,本来认为是应该结束了,但是悲剧得是,既然像刚才那样设置的话,只能在当前的activity中有作用,一段退出的时候,会发现毫无作用,悲剧,原来是忘记了保存了。汗!
/**
* 保存亮度设置状态
*
* @param resolver
* @param brightness
*/
public static void saveBrightness(ContentResolver resolver, int brightness) {
Uri uri = android.provider.Settings.System
.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver, "screen_brightness",
brightness);
// resolver.registerContentObserver(uri, true, myContentObserver);
resolver.notifyChange(uri, null);
}
YY滴,这回该差不多了吧,汗!
ANDROID 背光调节相关推荐
- android 9.0背光调节流程
1.背光服务框架 如下图是背光框架层图 2.UML时序图 这里主要标出的是各个服务或者框架层之间连接的api,中间会省略一些调用流程. 如下图,PowerManagerService会监听Settin ...
- Android原生调节屏幕背光流程
Android 5.1调节背光流程 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. https://mp.csdn.net/mdeditor/ ...
- android的背光调节
android的背光调节是利用pwm波形进行调节的,源码在 drivers\video\backlight\pwm_bl.c
- 和菜鸟一起学android4.0.3源码之lcd屏幕背光调节
周六的中午还是依旧来了公司,本来也没有打算来的,既然来了,那就把上次遗留下来的一些问题给解决吧,把android下的pwm调lcd背光给总结下吧.关于android的背光,是用pwm波来控制的,通过占 ...
- android 背光控制,Android P背光策略分析(一)
本文主要讲述android 9.0系统对背光的处理,文章分为三点讲述: 1.背光的初始化 2.手动背光调节 3.自动背光调节 一.初始化 1.1 服务的启动(DisplayManagerService ...
- Android背光系统实现
(一)Lights应用层 SystemUI--系统应用,其主要功能:状态栏信息显示.通知面板.截图/壁纸/屏保服务等: 代码: packages/apps/Settings/src/com/andro ...
- 下拉菜单中自动亮度调节P 上背光调节
P 上背光调节: https://blog.csdn.net/FightFightFight/article/details/85797336 frameworks\base\packages\Sys ...
- android 背光驱动
--作者: 赖玉平(peter lai)aulyp@163.com ANDROID里,自带的背光亮度调节,会调用哪个接口? 会调用 /sys/class/leds/lcd-backlight/brig ...
- Android7.0背光调节
涉及类: 一.简述 Android屏幕背光属于Android系统中display模块,display是从Power中分出来的,所以和Power有着密不可分的关系.背光调节中,又可以分为手动调节和自动调 ...
最新文章
- linux vg 镜像,Linux下载_Linux系统各种版本ISO镜像下载(redhat,centos,oracle,ubuntu,openSUSE)...
- ASP.NET Core on K8S深入学习(7)Dashboard知多少
- 1003 阶乘后面0的数量
- 点击网页跟踪php代码的工具,使用ltrace工具跟踪PHP库函数调用的方法
- 谈谈Groovy闭包
- SSH pts 虚拟终端
- C#.Net工作笔记005---c#中list合并去重_以及单纯合并_值类型list去重
- 这几款 JVM 故障诊断处理工具,你还不会?
- c语言命令行参数怎么输入_C语言程序设计——这个函数原型你看懂了吗
- SpringBoot+MyBatis启动报错java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
- [转]可爱的 Python:: 使用 itertools 模块中的组合函数
- hive 窗口函数 应用场景与实战详解
- 仿真的硬件选型原则:CPU
- 软考计算机硬件工程师考试大纲,2016年软考信息安全工程师考试大纲
- STM32单片机课程自学知识点整理 - 指南版
- Leetcode 781 森林中的兔子
- Crystal Reports(水晶报表)安装及拉(PULL)模式/推(PUSH)模式的使用
- 计算机画画教程,【推荐】初学者电脑画画教程
- c语言 文件加密与解密
- [ Linux RK ] 更改网卡名字|CSDN创作打卡
热门文章
- tyvj p1004 滑雪
- 高校教师工资管理系统java_基于jsp+Spring+mybatis的SSM简单院校教师工资管理系统...
- APD保护电路优化设计
- java.lang.NoClassDefFoundError:无法初始化类XXX
- C语言输入若干个学生成绩,输出平均成绩和低于60分的学生成绩
- vb中randomize和rnd函数的使用区别
- 完整学习笔记之Android基础(详版)
- 赠书福利|说出来你可能不信,这本书或许可以「预测」未来
- c语言中不正确的浮点型常量,c语言中float a=1;对吗?,c语言的问题。float a=1,*b=a,*c=...
- 大数据主要有什么用,入行大数据,需要学哪个专业?