如何在Android Lollipop上以编程方式更改自适应亮度级别?
我知道如何更改手册brightness level
,以及如何打开或关闭adaptive brightness
。这样做是这样的:Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, newLevel);
但是,启用adaptive brightness
时,操作系统会将其与另一个brightness level
组合,该与手动版本不同。
有没有办法做到这一点?
目标/最小/最大SDK为21。
最佳答案
不知道为什么,但是Android API中有一个隐藏的常量SCREEN_AUTO_BRIGHTNESS_ADJ
来调整自适应亮度。但是您可以像我一样通过"screen_auto_brightness_adj"
字符串值。
自适应亮度调节作为浮点值存储在[-1; 1]范围内。如果使用[0; 255]范围内的亮度值,则可以将其转换为合适的值,如下所示。
float value = (((float)brightness*2)/255) - 1.0f;
Settings.System.putFloat(contentResolver, "screen_auto_brightness_adj", value);