Android 亮度调节

AOSP中最大值 最小值

frameworks/base/core/res/res/values/config.xml

<integer name="config_screenBrightnessSettingMaximum">255</integer>
<item name="config_screenBrightnessSettingMaximumFloat" format="float" type="dimen">-2</item>

系统设置中默认初始值

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<integer name="def_screen_brightness">102</integer>
<bool name="def_screen_brightness_automatic_mode">false</bool>

设置APP亮度

    private float getAppBrightness() {
        Window window = getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        return lp.screenBrightness;
    }

    protected void setAppBrightness(float brightness) {
        Window window = getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.screenBrightness = brightness;
        window.setAttributes(lp);
    }

设置系统亮度

    private int getSystemBrightness() {
        /*
        //android.permission.WRITE_SETTINGS
        Settings.System.putInt(
                getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        */
        try {
            return Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
        } catch (Settings.SettingNotFoundException e) {
            return -1;
        }
    }

    protected void setSystemBrightness(int value) {
        ContentResolver contentResolver = getContentResolver();
        int brightness = (int) ((value <= 0 ? 1 : value) / 255f);
        Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, value);
    }
posted @ 2023-02-06 14:44  梦过无声  阅读(118)  评论(0编辑  收藏  举报