省电模式下调节背光亮度后重启手机,背光亮度恢复默认。
2018-01-10 10:17
295 查看
问题描述: 省电模式下调节背光亮度后重启手机,背光亮度恢复默认。
分析过程:
正常的情况下是只要是进入省电模式都会用一个小于 1 的系数去乘以背景光亮度 screenBrightness ,这
样背景光亮度就会变暗,退出省电模式就会 reset 这个背景光的亮度。
此 bug 是因为在省电模式下重启并没有在 reset 后 set ,而是在 set 的基础上又 set 了一次,如果在省电模
式下反复重启,就会反复 set ,导致屏幕越来越暗。
解决方案:
加一个标记,标记是在省电模式下重启,如果是在省电模式下重启就不用再 set.
diff --git a/services/core/java/com/android/server/power/PowerSaveModeController.javab/services/core/java/com/android/server/power/PowerSaveModeController.java
index b3b7275..7082f01 100644
--- a/services/core/java/com/android/server/power/PowerSaveModeController.java
+++ b/services/core/java/com/android/server/power/PowerSaveModeController.java
@@ -345,10 +345,17 @@ public class PowerSaveModeController extends BroadcastReceiver {
saveConfig(LAST_SCREEN_BRIGHTNESS_MODEL, screenMode);
saveConfig(LAST_SCREEN_BRIGHTNESS, screenBrightness);
-
- int brightness = screenBrightness
+ int brightness;
+ if (SystemProperties.getBoolean("persist.sys.power.save",false)) {
+
brightness = screenBrightness;
+
} else {
+
brightness = screenBrightness
* (getMaxScreenLightPowerSave() - getMinScreenLight())
/ (DEFAULT_MAX_SCREEN_BRIGHTNESS - getMinScreenLight());
+ } + //int brightness = screenBrightness
+ // * (getMaxScreenLightPowerSave() - getMinScreenLight())
+ // / (DEFAULT_MAX_SCREEN_BRIGHTNESS - getMinScreenLight());
if (DEBUG_VALUE)
Log.d(LOG_TAG, "setScreenLight - CurrentscreenMode is " + screenMode
@@ -359,9 +366,11 @@ public class PowerSaveModeController extends BroadcastReceiver {
DEFAULT_SCREEN_BRIGHTNESS_MODE);
Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS,
brightness);
+
SystemProperties.set("persist.sys.power.save","true");
}private void resetScreenLight() {
+
SystemProperties.set("persist.sys.power.save","false");
if (DEBUG_PROCESS)
Log.d(LOG_TAG, "resetScreenLight");
分析过程:
正常的情况下是只要是进入省电模式都会用一个小于 1 的系数去乘以背景光亮度 screenBrightness ,这
样背景光亮度就会变暗,退出省电模式就会 reset 这个背景光的亮度。
此 bug 是因为在省电模式下重启并没有在 reset 后 set ,而是在 set 的基础上又 set 了一次,如果在省电模
式下反复重启,就会反复 set ,导致屏幕越来越暗。
解决方案:
加一个标记,标记是在省电模式下重启,如果是在省电模式下重启就不用再 set.
diff --git a/services/core/java/com/android/server/power/PowerSaveModeController.javab/services/core/java/com/android/server/power/PowerSaveModeController.java
index b3b7275..7082f01 100644
--- a/services/core/java/com/android/server/power/PowerSaveModeController.java
+++ b/services/core/java/com/android/server/power/PowerSaveModeController.java
@@ -345,10 +345,17 @@ public class PowerSaveModeController extends BroadcastReceiver {
saveConfig(LAST_SCREEN_BRIGHTNESS_MODEL, screenMode);
saveConfig(LAST_SCREEN_BRIGHTNESS, screenBrightness);
-
- int brightness = screenBrightness
+ int brightness;
+ if (SystemProperties.getBoolean("persist.sys.power.save",false)) {
+
brightness = screenBrightness;
+
} else {
+
brightness = screenBrightness
* (getMaxScreenLightPowerSave() - getMinScreenLight())
/ (DEFAULT_MAX_SCREEN_BRIGHTNESS - getMinScreenLight());
+ } + //int brightness = screenBrightness
+ // * (getMaxScreenLightPowerSave() - getMinScreenLight())
+ // / (DEFAULT_MAX_SCREEN_BRIGHTNESS - getMinScreenLight());
if (DEBUG_VALUE)
Log.d(LOG_TAG, "setScreenLight - CurrentscreenMode is " + screenMode
@@ -359,9 +366,11 @@ public class PowerSaveModeController extends BroadcastReceiver {
DEFAULT_SCREEN_BRIGHTNESS_MODE);
Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS,
brightness);
+
SystemProperties.set("persist.sys.power.save","true");
}private void resetScreenLight() {
+
SystemProperties.set("persist.sys.power.save","false");
if (DEBUG_PROCESS)
Log.d(LOG_TAG, "resetScreenLight");
相关文章推荐
- 禁用/恢复手机默认的触屏滚动行为
- Android系统手机重启与恢复出产设置源代码跟踪
- Android 5.0 修改背光自动调节最低亮度值
- Adnroid屏幕亮度调节——设置到指定的值与恢复到原来的值
- 12-14日小米4 手机不停的无限重启。用下面方法及清理电源,音量按钮恢复
- 数字脉冲调光(用于手机或平板电脑等设备的背光调节原理)
- Ubuntu Linux笔记本屏幕背光亮度调节
- Android 5.0 修改背光自动调节最低亮度值
- 背光调节亮度默认值修改
- 背光亮度调节流程
- MTK手机默认音量大小调节工具
- 基于S3C2450 + WINCE的背光驱动及背光亮度调节应用程序移植详解之驱动篇
- 手机设置的亮度调节功能
- unity 控制安卓手机的亮度调节
- Android-设置屏幕亮度默认为自动调节
- 将SD卡的音频设置为手机铃声后删除,手机铃声没有恢复到默认的问题
- Android背光亮度调节
- 调整Android手机的默认亮度
- Android系统的改进(八)-- 当把手机当作存储介质连到电脑后,如果指定的铃声在存储卡上,指定的歌曲铃声消失,恢复默认
- Setting中背光调节时,亮度值可以最小调到最大,如何修改最小亮度值?