Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启用自动右转时更改屏幕亮度_Android_Screen Brightness - Fatal编程技术网

Android 启用自动右转时更改屏幕亮度

Android 启用自动右转时更改屏幕亮度,android,screen-brightness,Android,Screen Brightness,当启用设备的自动亮度时,下面更改屏幕亮度的代码不起作用: Window w = getWindow(); WindowManager.LayoutParams lp = w.getAttributes(); lp.screenBrightness=0.09f; getWindow().setAttributes(lp); 如何更改此代码以使用自动亮度?免责声明: 这段代码有点“黑客”,可能无法在所有android版本和所有android手机上运行,也可能不是最佳代码实践。如果您的设备发生爆炸

当启用设备的自动亮度时,下面更改屏幕亮度的代码不起作用:

Window w = getWindow();
WindowManager.LayoutParams lp = w.getAttributes();

lp.screenBrightness=0.09f;
getWindow().setAttributes(lp);
如何更改此代码以使用自动亮度?

免责声明: 这段代码有点“黑客”,可能无法在所有android版本和所有android手机上运行,也可能不是最佳代码实践。如果您的设备发生爆炸或开始下雨等情况,我不承担任何责任:)

也就是说,您可能希望暂时禁用自动正确性:

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
然后重新启用它:

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);

以下代码在Android0上工作得非常完美

   private void setBrightness(Activity activity, int brightness) {
            WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
            lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
            activity.getWindow().setAttributes(lp);
        }
可以认为窗口属性的优先级高于自右性


您可以在PowerManagerService.java->updateDisplayPowerStateLocked中检查此逻辑。

谢谢,您的代码正在工作。但仅当我使用其中一个时(即:禁用自动权限时,再次启用它的代码不工作)