Java 如何在“片段”中以编程方式更改屏幕亮度`

Java 如何在“片段”中以编程方式更改屏幕亮度`,java,android,android-fragments,Java,Android,Android Fragments,当我的应用程序中显示对话框片段时,我需要将亮度屏幕设置为最大级别。我的应用程序对Android SDK 23的支持最少,我尝试在对话框片段的onCreate()中设置亮度,如下所示: WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes(); float brightness=1.0f; lp.screenBrightness = brightness; getActivity().getWindow().

当我的应用程序中显示对话框片段时,我需要将亮度屏幕设置为最大级别。我的应用程序对Android SDK 23的支持最少,我尝试在对话框片段的
onCreate()
中设置亮度,如下所示:

WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes();
float brightness=1.0f;
lp.screenBrightness = brightness;
getActivity().getWindow().setAttributes(lp);
但屏幕亮度只会改变一会儿。如何在对话框打开时将亮度屏幕设置为最大水平,并在片段对话框关闭时再次重置亮度屏幕?

请尝试下面的代码

 //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
        );
    }
}
//在清单文件中添加以下权限
//还可以在运行时请求设置权限
if(Build.VERSION.SDK\u INT>Build.VERSION\u code.M){
布尔值canWriteSettings=Settings.System.canWrite(此);
如果(!canWriteSettings){
意图=新意图(设置、操作、管理、写入设置);
星触觉(意向);
}
}
//最后使用下面的方法设置亮度
公共void设置屏幕亮度(上下文mContext,int-brightnessValue){
//确保亮度值介于0到255之间

如果(brightnessValue>=0&&brightnessValue感谢您的回复,但当我在清单上插入权限时,android studio告诉我该权限仅适用于系统应用程序