Android 重启 Settings.System.SCREEN_BRIGHTNESS变为1
时间: 2023-07-16 11:16:39 浏览: 233
这可能是因为在重启后,系统会重置屏幕亮度到默认值,而默认值可能是1。您可以在应用程序启动时读取当前屏幕亮度值,并在应用程序退出前保存该值。这样,在下次应用程序启动时,您可以将保存的屏幕亮度值重新应用到系统设置中。您可以尝试使用以下代码来实现:
```
// 读取当前屏幕亮度值
int screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
// 保存屏幕亮度值
SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("screenBrightness", screenBrightness);
editor.apply();
// 在应用程序启动时将保存的屏幕亮度值应用到系统设置中
int savedScreenBrightness = preferences.getInt("screenBrightness", -1);
if (savedScreenBrightness != -1) {
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, savedScreenBrightness);
}
```
请注意,在Android 6.0及更高版本中,应用程序需要获得WRITE_SETTINGS权限才能写入系统设置。您可以在应用程序的AndroidManifest.xml文件中添加以下权限声明:
```
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
```
同时,需要在应用程序运行时请求这个权限:
```
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 1);
}
}
```
这段代码将打开一个系统界面,允许用户授予应用程序WRITE_SETTINGS权限。当用户授予权限后,您的应用程序就可以写入系统设置了。
阅读全文