省电模式下调节背光亮度后重启手机,背光亮度恢复默认。

问题描述: 省电模式下调节背光亮度后重启手机,背光亮度恢复默认。
分析过程:
正常的情况下是只要是进入省电模式都会用一个小于 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");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值