如何以编程方式更改“自动模式”屏幕的亮度?

时间:2019-06-12 14:10:05

标签: android android-intent kotlin

显然,Android保存了两个屏幕亮度值:一个用于自动调整,一个用于手动模式(至少在Nougat上)。如何更改一种以进行自动调整?

如果我这样将屏幕亮度更改为0:

Settings.System.putInt(
    context.contentResolver,
    Settings.System.SCREEN_BRIGHTNESS, 
    0
)

然后更改手动模式。启用自动调整功能后,此代码不会产生任何可见的变化。

在这里:https://stackoverflow.com/a/18312812有人建议先打开手动模式(SCREEN_BRIGHTNESS_MODE_MANUAL),但我想保持自动调整。

1 个答案:

答案 0 :(得分:0)

如果将亮度模式设置为自动。那么您需要先停止自动亮度调整,然后再设置亮度。这段代码对我有用:

    public static void stopAutoBrightness(Activity activity) {
          android.provider.Settings.System.putInt(activity.getContentResolver(),
                  android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,
                  android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        }