Android Settings.System.SCREEN_BRIGHTNESS默认值为53,重启后变为1
时间: 2023-07-16 14:16:41 浏览: 166
在Android中,Settings.System.SCREEN_BRIGHTNESS是系统亮度的设置值,其默认值确实是53。但是,当你将此值更改为1时,系统会将其视为最低亮度值而不是默认值,因此重启后会保留1作为设置值。如果你希望设置为默认值,可以将其更改回53。你可以使用以下代码将屏幕亮度设置为默认值:
```
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 53);
```
请注意,这需要WRITE_SETTINGS权限。
相关问题
Android 重启 Settings.System.SCREEN_BRIGHTNESS变为1
这可能是因为在重启后,系统会重置屏幕亮度到默认值,而默认值可能是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权限。当用户授予权限后,您的应用程序就可以写入系统设置了。
Settings.System.SCREEN_BRIGHTNESS设置失败
可能是因为您的应用程序没有适当的权限来更改屏幕亮度。请确保在您的AndroidManifest.xml文件中添加了以下权限:
```
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
```
此外,自Android 6.0(API级别23)以后,您还需要请求WRITE_SETTINGS权限。您可以使用以下代码在运行时请求权限:
```
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(this)) {
Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + this.getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
```
此代码将打开一个系统对话框,要求用户授予您的应用程序写入设置的权限。如果用户授予了权限,则您的应用程序可以更改屏幕亮度。
阅读全文