Как изменить яркость экрана? мое решение не работает - PullRequest
1 голос
/ 23 мая 2019

Я хочу программно изменить яркость экрана на 0, чтобы я использовал:

public static void reduceBrightness(Context context) {
    if (Build.VERSION.SDK_INT < 23 || Settings.System.canWrite(context)) {
        try {
            Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
            Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 0);
        } catch (Settings.SettingNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Разрешение предоставлено.

Однако, когда я продолжаю изменять некоторые настройки (такие как wifi, buetooth,)яркость перейти к значению, отличному от нуля (то есть значение до уменьшения яркости)

Пожалуйста, помогите мне исправить код.

1 Ответ

0 голосов
/ 23 мая 2019

Используйте этот код для изменения яркости, передавая значение int от 0 до 255.

public void setScreenBrightness(int brightnessValue){
// Make sure brightness value between 0 to 255
if(brightnessValue >= 0 && brightnessValue <= 255){
    Settings.System.putInt(
            mContext.getContentResolver(),
            Settings.System.SCREEN_BRIGHTNESS,
            brightnessValue
    );
}

}

Также дайте следующее разрешение

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
...