【问题标题】:How to programmatically change "automatic mode" screen brightness?如何以编程方式更改“自动模式”屏幕亮度?
【发布时间】:2019-06-12 14:10:05
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 为什么要保持自动调整开启?即使您能够以某种方式在自动模式下设置亮度,它不会被传感器改变吗?
  • 它将适应环境亮度,但总体而言,屏幕亮度将保持较高/较低。而且我想保持自动调整,因为我的应用程序的用户可能希望保持它(更改应该是永久性的)

标签: android android-intent kotlin


【解决方案1】:

如果您将亮度模式设置为自动。那么您需要在设置亮度之前停止自动亮度调节。这段代码对我有用:

    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);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2012-02-14
    • 2011-11-30
    • 2012-05-31
    • 2014-09-04
    相关资源
    最近更新 更多