Как программно изменить яркость экрана в `Фрагмент` - PullRequest
0 голосов
/ 17 июня 2019

Мне нужно установить максимальный уровень яркости экрана, когда в моем приложении отображается фрагмент диалога.Мое приложение имеет минимальную поддержку Android SDK 23, и я попытался установить яркость внутри onCreate() моего фрагмента диалога следующим образом:

WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes();
float brightness=1.0f;
lp.screenBrightness = brightness;
getActivity().getWindow().setAttributes(lp);

Но экран яркости меняется только на несколько мгновений.Как установить максимальный уровень яркости экрана при открытии диалогового окна и сбросить его снова при закрытии диалогового окна фрагмента?

1 Ответ

0 голосов
/ 17 июня 2019

Попробуйте код ниже

 //add below permission in your manifest file
  <uses-permission android:name="android.permission.WRITE_SETTINGS" />

// also ask setting permission at runtime
  if(Build.VERSION.SDK_INT>Build.VERSION_CODES.M) {
       boolean canWriteSettings = Settings.System.canWrite(this);
        if (!canWriteSettings) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
            startActivity(intent);
        }
    }


  //  finally use below method for set brightness
      public void setScreenBrightness(Context mContext,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
        );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...