为什么我关闭了自动亮度调节还是会苹果关闭亮度自动调节亮

16:41 提问
自动亮度调节,从暗到亮或从亮到暗过渡不平滑,这是因为什么原因导致的?
自动亮度调节,从暗到亮或从亮到暗过渡不平滑,这是因为什么原因导致的?如果要使它变得平滑,应该修改哪个地方?是修改它的配置文件里的config_autoBrightnessLcdBacklightValues和config_autoBrightnessLevels么?怎么修改?
按赞数排序
建议你去看看此文档链接
主要是从Sensor分析之中分离出来分析LIGHT 光线感应器,因此就分析一下自动调节屏幕亮度(手机随着光线的强度自我调节,也就是在亮的光线下屏幕自动调亮一些,暗的时候就自动调暗一些,省得光线对眼睛有刺激).....
那么我们当然去找settings下的文件开始看了,先找到
DiaplaySettings.Java文件以及display_setting.xml文件,display_setting.xml里面能找到相应的组件,但是 在DiaplaySettings.java文件中却不能找到调用相应组件的代码,
那么我们再到settings中去找,能找到BrightnessPreference.java文件,没错这个文件就是自动调节亮度的文件,我们先看看代码:
构造函数中有mAutomaticAvailable = context.getResources().getBoolean(com.Android.internal.R.bool.config_automatic_brightness_available);
开始以为mAutomaticAvailabl的值(为true,在config.xml中)是判断是否自动调节亮度,因为在我跟进到PowerManagerService.java中,在initInThread() 中
mUseSoftwareAutoBrightness = resources.getBoolean(
com.android.internal.R.bool.config_automatic_brightness_available);
if (mUseSoftwareAutoBrightness) {
mAutoBrightnessLevels = resources.getIntArray(
com.android.internal.R.array.config_autoBrightnessLevels);//得到自动化调节的值调用 getAutoBrightnessValue(int sensorValue, int[] values) 方法
mLcdBacklightValues = resources.getIntArray(
com.android.internal.R.array.config_autoBrightnessLcdBacklightValues);
mButtonBacklightValues = resources.getIntArray(
com.android.internal.R.array.config_autoBrightnessButtonBacklightValues);
mKeyboardBacklightValues = resources.getIntArray(。。。。。
。。。。。。这里看起来好像是当mUseSoftwareAutoBrightness为true时就取得config.xml文件config_autoBrightnessLevels的值,再去根据光线自动调节,但是mAutomaticAvailabl的值只是说明有没有自动调节屏幕的功能(比如说你将config.xml文件的config_automatic_brightness_available的值改为false,编译替换framework-res.apk那么在屏幕亮度调节中将没有自动调节的checkbox),这也能解释构造函数一开始就初始化mAutomaticAvailabl的值。
接下来在BrightnessPreference.java文件中有onProgressChanged,onStartTrackingTouch(SeekBar seekBar),onStopTrackingTouch(SeekBar seekBar)方法,这些一看也能懂就不介绍了,在onBindDialogView(View view)方法中有
mCheckBox = (CheckBox)view.findViewById(R.id.automatic_mode);
if (mAutomaticAvailable) {//当有自动调节功能
mCheckBox.setOnCheckedChangeListener(this);//为checkbox添加监听事件
mOldAutomatic = Settings.System.getInt(getContext().getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE);
。。。。。。
主要看public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
setMode(isChecked ? Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
: Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
if (!isChecked) {
setBrightness(mSeekBar.getProgress() + MINIMUM_BACKLIGHT);
这里才是你选择自动调节亮度的checkbox,如果选择则setMode(Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);将调用 setMode(int mode)中的
Settings.System.putInt(getContext().getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE, mode);将数据存放到数据库中(adb shell进入,进入data/data/com.android.providers.settings/databases,用sqlite3查看setting.db,查看里面的system表,当选择自动调节模式表里的screen_brightness_mode=1,如果不是自动调节则为0).
这里是重点:这里有个数据库,当监测到数据库中的值发生改变时也就是变为Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC时,就会跳到
powerManagerService.java的initInThread()中ContentResolver resolver = mContext.getContentResolver();
Cursor settingsCursor = resolver.query(Settings.System.CONTENT_URI, null,
"(" + Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?)",
new String[]{STAY_ON_WHILE_PLUGGED_IN, SCREEN_OFF_TIMEOUT, DIM_SCREEN, XEC_DLS_CONTROL,
SCREEN_BRIGHTNESS_MODE, WINDOW_ANIMATION_SCALE, TRANSITION_ANIMATION_SCALE},
mSettings = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, mHandler);
SettingsObserver settingsObserver = new SettingsObserver();
mSettings.addObserver(settingsObserver);
settingsObserver.update(mSettings, null);
当数据库中数据发生改变时触发事件的发生。就会调用Observer中的setChange(),notifyObservers()才会去调用update()。
在 powerManagerService.java的systemReady()(只在开机调用一次就不再调用)中
if (mUseSoftwareAutoBrightness) {
Log.i("frist","frist="+"aaaa");
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
enableLightSensor(true);
而mUseSoftwareAutoBrightness是在initInThread()线程中取得了true值,那么就到enableLightSensor(true);方法去看
if (enable) {
mSensorManager.registerListener(mLightListener, mLightSensor,
SensorManager.SENSOR_DELAY_NORMAL);
如果传递来的值为true也就是enable=true就监听而且用匹配屏幕方向变化的感应SENSOR_DELAY_NORMAL。
再看mLightListener事件:SensorEventListener mLightListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
synchronized (mLocks) {
int value = (int)event.values[0];//从event里面获取当前数据
Log.i("value","value="+value);
long milliseconds = SystemClock.elapsedRealtime();
if (mDebugLightSensor) {
Slog.d(TAG, "onSensorChanged: light value: " + value);
mHandler.removeCallbacks(mAutoBrightnessTask);
if (mLightSensorValue != value) {//mLightSensorValue是当前的屏幕亮度
if (mLightSensorValue == -1 ||
milliseconds & mLastScreenOnTime + mLightSensorWarmupTime) {
// process the value immediately if screen has just turned on
lightSensorChangedLocked(value);
// delay processing to debounce the sensor
mLightSensorPendingValue =//mLightSensorPendingValue是准备要设置的亮度
mHandler.postDelayed(mAutoBrightnessTask, LIGHT_SENSOR_DELAY);//到mAutoBrightnessTask线程去完成自动调节
mLightSensorPendingValue = -1;
当前屏幕亮度肯定不等与-1,所以做else中的mHandler.postDelayed(mAutoBrightnessTask, LIGHT_SENSOR_DELAY),那么我们再到mAutoBrightnessTask
线程看:private Runnable mAutoBrightnessTask = new Runnable() {
public void run() {
synchronized (mLocks) {
int value = (int)mLightSensorPendingV
Log.i("mLightSensorPendingValue","mLightSensorPendingValue"+mLightSensorPendingValue);
if (value &= 0) {
mLightSensorPendingValue = -1;
lightSensorChangedLocked(value);
};就是不断的去调用lightSensorChangedLocked(value)
private void lightSensorChangedLocked(int value) {
。。。。。。。
if (mLightSensorValue != value) {
mLightSensorValue =
if ((mPowerState & BATTERY_LOW_BIT) == 0) {
// Use light sensor value no matter it is in a dock or not.
int lcdValue = getAutoBrightnessValue(
mLcdBacklightValues);// 取得mLcdBacklightValues里面的值
int buttonValue = getAutoBrightnessValue(value, mButtonBacklightValues);
int keyboardV
if (mKeyboardVisible) {
keyboardValue = getAutoBrightnessValue(value, mKeyboardBacklightValues);
keyboardValue = 0;
if (mAutoBrightessEnabled && mScreenBrightnessOverride & 0) {//设置屏幕亮度
mScreenBrightness.setTargetLocked(lcdValue, AUTOBRIGHTNESS_ANIM_STEPS,
INITIAL_SCREEN_BRIGHTNESS, (int)mScreenBrightness.curValue);
。。。。。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐&的最新主题
自动亮度调节在魅族上一直有问题,试过很多方法,也试过论坛中提到的,自动亮度校准的方法,都不管用。经过不懈的努力,终于找到了问题出在哪里。且听我慢慢解释!
如果你按照官方客服的建议校准了距离感应器还没有效果,如果你按照论坛中的自动亮度调节校准方法,都不管用的话,请看看本帖。如果你觉得有道理,请转发到论坛,请转发给客服,让魅族注意这个有史以来一直没有修好的功能!
先在这里谢谢各位魅友,也希望魅族能早日解决光感问题。
自动亮度调节应该是
自动光线感应器和系统固件配合的结果。
首先:自动光线感应器感受外界的光线变化,给出一定的亮度值,(**勒克斯)这个数值应该是不断变动的,因为你的手机在移动的过程中,接收到的光线强度在不断变化的。
然后:系统固件中预设一定的参数,从而调节从多少到多少,用多大的亮度来显示,比如1000勒克斯,100%亮度& & 1勒克斯,1%亮度。mx2以前的固件对这个参数设定的比较宽,所以,会有一个光线忽然的转换。而mx3以后的固件,光线变化的就比较*滑,应该是对光线值设定的比较精细的原因。
言归正传:
自动亮度调节为什么经常失灵,原因在哪里?
我下载了一个名为“光线感应器”的app应用,这个软件可以即时显示光线感应器接收到的光线值。应用汇中可以下载该应用
下载地址:http://www.appchina.com/app/com.hao.lightinductor/
正常情况下,光线感应器的指针应该是随着你移动手机,会不断的变化,最暗的屋子在最左边,在室外,应该是左右边。光感正常的时候,你可以在明亮环境下,手指按住光线感应器位置,可以看到读数迅速下降,而屏幕亮度也会缓慢下降。这就说明这个时候你的手机的光线感应是起效的。
不正常的时候,光线感应器软件的指针会固定在一个位置不在动,不管是光线照射还是手指遮挡,都不会有数值变化。这说明要么光线感应器硬件停止工作了,要么是系统读取数据的程序出了问题,无法读取光线数据。而屏幕亮度当然不会再自动调节了,只能按照原先它读取到的数据来设定亮度值。
经过多次试验,我发现魅族手机光感失灵的时候,都是由于光线感应器数据与系统对接不上造成的。这种情况,根本不是参数失灵造成的,参数还在那里,只是你的手机根本读不到外界光线值。所以,用网上流传的方法,根本无法修复光线感应值不变的问题。
唯一的解决办法:
就是重启机器,让系统重新对接光线感应器。问题才会修复。
最后:什么情况下会出现这种问题。
具体出现的时间不好确定,我总结了几种情况,请看官自我查证。
1、长时间不打开手机,深度休眠的手机,打开手机,屏幕一直维持在最低亮度。
2、长时间使用某一程序,并且无光线变化,再移动到其他光线环境,自动光感失效。
哦,酱紫啊。
关闭自动亮度
不明觉厉,拿到的四妹自动调节亮度也不好使啊,突然会到最低亮度暗暗地............
朋友们跟帖太快了,我还没有来及把视频贴上去。
请大家移步到以下地址看问题视频。
前边是出问题时候的光线感应情况,之后是重启之后的效果。所以,如果大家发现光感失常的话,最简单的解决办法就是重启。
http://v.youku.com/v_show/id_XNzk0NDc5MjA4.html
魅族真不给力
我已经很久很久 没有用过 自动调节亮度了。
顶起来,求官方解释
满满的正能量
这么多代了,光感一直有问题,魅族从来不正视
如何让mz重视呢?
看了这么多得到一个结论,重启
楼主好人& &顶起来& &顺便也让魅族工程师看看& &希望魅族能重视起来这个最常用的问题!!!!
光感还是有问题啊
这是我作为一个使用者,找到的唯一解决办法。
本文的用意是让官方知道光感问题出在哪里,希望下个版本修复
从来不用自动路过。。。。
应该是这个道理,经常保持同一亮度游戏或者看片,突然黑屏,也是只有重启,通过某系角度看,系统是正常的,就是背光关闭了,只有重启
从来不用自动
我都是直接关闭自动亮度再打开就行了& &或者锁屏重新开屏
有的时候这个方法不管用,光感功能直接睡死!
为了一个光线感应去重启手机,呵呵
一直手动,自动太费眼了
这个自动调节直接没法用
MX4用了自动调节很好的路过!!以前的MX那个自动就是个废,傻的很
说那么多干嘛,不就是对进入光线感应不敏感嘛,上划调出后台,右划到亮度调节,关闭,再打开,你看一下屏幕亮度?~.~很多原因会造成屏幕亮度不随环境变化改变的,比如,贴膜~.~~.~~.~
我 的好像自动也不管用
还有一种情况就是取消自动调节亮度一段时间之后,在打开自动调节功能,然后失效。还有一种是打开了其他应用程序,不知为什么一打开那个软件屏幕就变得好亮,一旦推出就回到正常,之后亮度调节就失效了。。。。。。。
是啊,有时候连重启都没有!!
上传的图片不符合要求
来自的祝福
网络异常,抽奖失败
(本次不消耗打开红包的次数)
Please select your country or region焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
主题 : 1|帖子 : 10|积分 : 74
该用户从未签到
每次调成自动调节亮度后用几个小时就会发现自动调节亮度又自己关闭了,每次在环境暗的时候看屏幕真刺眼就会发现原来是屏幕亮度太高。好忧伤,这是怎么回事啊。还有我关闭了自动旋转后变成纵向可为什么看视频手机横过来他又自动旋转了屏幕啊对于我这种喜欢侧躺着玩手机的真的好不方便啊,各位大神有解吗。
| 来自:OnePlus5T |
掺水油, 积分 461, 距离下一级还需 39 积分
掺水油, 积分 461, 距离下一级还需 39 积分
掺水油, 积分 461, 距离下一级还需 39 积分
主题 : 3|帖子 : 101|积分 : 461
该用户从未签到
自动调节亮度你看视频的时候有在视频里面调节亮度 ,自动调节亮度就会被关闭
| 来自:OnePlus5T |
勾兑油, 积分 655, 距离下一级还需 345 积分
勾兑油, 积分 655, 距离下一级还需 345 积分
勾兑油, 积分 655, 距离下一级还需 345 积分
主题 : 6|帖子 : 86|积分 : 655
该用户从未签到
哈哈哈哈,同感
| 来自:OnePlus5T |
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
主题 : 1|帖子 : 10|积分 : 74
该用户从未签到
自动调节亮度你看视频的时候有在视频里面调节亮度 ,自动调节亮度就会被关闭
没有调过的,就莫名其妙会自己关闭
| 来自:OnePlus5T |
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
主题 : 1|帖子 : 10|积分 : 74
该用户从未签到
哈哈哈哈,同感
[e]1f602[/e][e]1f602[/e]
| 来自:OnePlus5T |
焦油, 积分 166, 距离下一级还需 34 积分
焦油, 积分 166, 距离下一级还需 34 积分
焦油, 积分 166, 距离下一级还需 34 积分
主题 : 1|帖子 : 15|积分 : 166
该用户从未签到
我的也是 怎么解决
| 来自:OnePlus5T |
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
焦油, 积分 74, 距离下一级还需 126 积分
主题 : 1|帖子 : 10|积分 : 74
该用户从未签到
TavisD 发表于
我的也是 怎么解决
不知道啊,就很烦,有大神来解决一下吗
| 来自:OnePlus5T |
OnePlus 5T
一加手机5T勋章
深圳市万普拉斯科技有限公司 版权所有(来自 vivo X9
您好,沐风很高兴为您服务
您反馈的现象是因为考虑到省电而进行的设计,还希望您能够理解。
感谢您对vivo的支持,祝您生活愉快,万事如意。
来自 社区电脑版
我也是 怎么办 这个功能能关闭么
来自 社区电脑版
您好,沐风很高兴为您服务您反馈的现象是因为考虑到省电而进行的设计,还希望您能够理解。感谢您对vivo的支 ...
我的手机也是这样,我的手机也是vivox9,昨天买的,买回来的当天手机屏幕就会出现这种现象。白天只要把手机屏幕往下倾斜一点点,屏幕的亮度就会变暗,再把手机的屏幕向上倾斜一点,屏幕的亮度就会变得亮一点。咋回事啊?我都快急死了!用不用去手机店花钱修手机啊?
来自 社区手机版
我也是怎么办这个功能能关闭么
你的 vivox9 是不是白天只要把手机屏幕往下倾斜一点点,屏幕的亮度就会变暗,再把手机的屏幕向上倾斜一点,屏幕的亮度就会变得亮一点啊?
来自 社区手机版
我的手机也是这样,我的手机也是vivox9,昨天买的,买回来的当天手机屏幕就会出现这种现象。白天只要把手机屏幕往下倾斜一点点,屏幕的亮度就会变暗,再把手机的屏幕向上倾斜一点,屏幕的亮度就会变得亮一点。咋回事啊?我都快急死了!用不用去手机店花钱修手机啊?
来自 社区手机版
我也是 明明关了自动调节亮度 它还是会自动调节亮度 生气
来自 社区手机版
我也是 怎么办 这个功能能关闭么
来自 社区电脑版
为什么手机在黑暗的情况下,用手盖住柔光灯屏幕亮度就会变亮,把手拿开亮度就变低啦。
你打开了前置摄像头
来自 社区手机版
来自 vivo X9i
【X7评测】1600万柔光自拍,为自拍而生
【X7美图】有了“你”就有了光,自拍神器vivo X7|图赏
【X7美图】静待邂逅,vivo X7图赏
【X7Plus美图】更美的大屏手机 vivo X7Plus「图赏」
【X7评测】夏日·乐悠悠|X7摄影美图系列
24小时全国服务热线
400-678-9688
公众号:vivo智能手机
生活号:vivo智能手机
公众号:vivo智能手机
生活号:vivo智能手机
保存二维码win8系统自动调整亮度功能怎么关闭?win8系统关闭自动调节亮度功能的方法-系统城
当前位置: &
& win8系统自动调整亮度功能怎么关闭?win8系统关闭自动调节亮度功能的方法
win8系统自动调整亮度功能怎么关闭?win8系统关闭自动调节亮度功能的方法
自带很多人性化的功能,比如自动调整亮度功能,会根据环境的光线自动调整屏幕的亮度,有的时候电脑屏幕忽暗忽亮,看起来非常不习惯。一般我们都会设置固定的屏幕亮度,如果不习惯自动调整亮度功能可以选择关闭。那么win8系统自动调整亮度功能怎么关闭?接下去下面教程分享win8系统关闭自动调节亮度功能的方法。推荐:具体方法如下:1、打开控制面板;2、找到电源选项;3、更改计划;4、更改高级电源设置;5、找到显示-》启动自适应亮度-》关闭,关闭—》确定;解决方法二:1、计算机-》管理-》服务-》sensor monitoring service-&禁用-》停止;2、点击“服务”;3、点击服务sensor monitoring service;4、点击“禁用”。以上教程内容就是win8系统关闭自动调节亮度功能的方法,是不是很简单,如果不用的用户可参考上文进行禁用或开启。
我要分享:
win8系统自动调整亮度功能怎么关闭?win8系统关闭自动调节亮度功能的方法相关教程
热&门推&荐
&热门教程推荐
12345678910
&热门系统专题
&Win8系统推荐
&|&&|&本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!
如侵犯到您的权益,请及时通知我们,我们会及时处理。
Copyright @ 2011 系统城

我要回帖

更多关于 ios关闭自动调节亮度 的文章

 

随机推荐