以编程方式更改自适应亮度级别



如何在安卓棒棒糖上以编程方式更改自适应亮度级别?

我知道 如何更改手动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);

如果您的应用 targetSdkVersion 为 23+,Settings.System.putFloat(contentResolver, "screen_auto_brightness_adj", value( 将无法工作,因为 Android 会禁止您修改任何"隐藏"设置。

阅读 frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\SettingsProvider.java warnOrThrowForUndesiredSecureSettingsMutationForTargetSdk(( 了解详细信息。

最新更新