Java 如何在“片段”中以编程方式更改屏幕亮度`
当我的应用程序中显示对话框片段时,我需要将亮度屏幕设置为最大级别。我的应用程序对Android SDK 23的支持最少,我尝试在对话框片段的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().
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告诉我该权限仅适用于系统应用程序