这个问题在这里已有答案:
我正在编写一个应用程序,用seekbar更改屏幕亮度,我在事件onProgressChanged上使用此代码
Settings.System.putInt(getApplicationContext().getContentResolver(),Settings.System.SCREEN_BRIGHTNESS,newBrightness);
但是这个代码后应用程序崩溃了。我还补充道
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
到Manifest
有谁知道为什么?请帮我
提前致谢
你也应该刷新屏幕。你的代码更复杂。
Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 20);
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = 0.2f;
getWindow().setAttributes(layoutParams);
startActivity(new Intent(this,RefreshScreen.class));
此外,您可能需要关闭自动模式:
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);