客户反馈:自动调节亮度打开的状态下,手动拖动亮度条后,自动调节亮度失效
分析:这个是正常现象,用户手动调节后,不再自动调节亮度;但是客户不要这个效果,要求自动调节亮度一直生效。
关于自动调节亮度流程主要参考这个大神的
https://blog.csdn.net/ruzi1993/article/details/91972674?ops_request_misc=&request_id=&biz_id=102&utm_source=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1
描述的还是比较详细的。
在用户手动调节亮度后,会调用
frameworks\base\services\core\java\com\android\server\display\AutomaticBrightnessController.java
public void configure(boolean enable, @Nullable BrightnessConfiguration configuration,
float brightness, boolean userChangedBrightness, float adjustment,
boolean userChangedAutoBrightnessAdjustment, int displayPolicy) {
}
正常没有手动调节亮度时,打印的各个参数值:
enable true brightness0.0 userChangedBrightnessfalse
adjustment 0.0 userChangedAutoBrightnessAdjustmentfalse displayPolicy3
手动调节后,打印的各个参数值:
enable true brightness0.10980392 userChangedBrightnessfalse
adjustment -1.0 userChangedAutoBrightnessAdjustmentfalse displayPolicy3
参数userChangedBrightness,的意思是用户手动改变亮度
changed |= setScreenBrightnessByUser(brightness);
if (changed) {
updateAutoBrightness(false /*sendUpdate*/);
}
所以导致不能自动调节亮度。
--- a/sprd/frameworks/base/services/core/java/com/android/server/display/AutomaticBrightnessController.java
+++ b/sprd/frameworks/base/services/core/java/com/android/server/display/AutomaticBrightnessController.java
@@ -334,7 +334,7 @@ class AutomaticBrightnessController {
if (userChangedBrightness && enable) {
// Update the brightness curve with the new user control point. It's critical this
// happens after we update the autobrightness adjustment since it may reset it.
- changed |= setScreenBrightnessByUser(brightness);
+ //changed |= setScreenBrightnessByUser(brightness);
}