如何在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);

08-04 04:01
查看更多