android - com.android.shell was not granted this permission: android.permission.WRITE_SETTINGS
问题描述
I'm trying to set screen brightness with:</p>
adb shell settings put system screen_brightness 150
but I got an Error:</p>
java.lang.SecurityException: com.android.shell was not granted this permission: android.permission.WRITE_SETTINGS.
at android.provider.Settings.isCallingPackageAllowedToPerformAppOpsProtectedOperation(Settings.java:13454)
at android.provider.Settings.checkAndNoteWriteSettingsOperation(Settings.java:13336)
at com.android.providers.settings.SettingsProvider.mutateSystemSetting(SettingsProvider.java:1690)
at com.android.providers.settings.SettingsProvider.insertSystemSetting(SettingsProvider.java:1629)
at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:494)
at android.content.ContentProvider$Transport.call(ContentProvider.java:483)
at com.android.providers.settings.SettingsService$MyShellCommand.putForUser(SettingsService.java:387)
at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:285)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
at android.os.Binder.shellCommand(Binder.java:634)
at android.os.Binder.onTransact(Binder.java:532)
at android.os.Binder.execTransact(Binder.java:731)
解决方案
要使用 WRITE_SETTINGS,请根据文档:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
在您的清单中添加上述行,对于 Android M 或更高版本的设备,请使用此行
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(getApplicationContext())) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 200);
}
}
推荐阅读
- android - 更改其中的数据后,Recyclerview 高度不会改变
- java - 无法在 Java 中的任务调度程序类中自动装配 bean
- python - 使模块可用于 python 项目中的每个文件
- go - Go 项目中的多个主文件
- css - CSS4 :matches() 用于父元素而不是子元素
- ios - 在 Swift 中使用 map 和 sorted 的最佳方法是什么
- jquery - 比较 td 值并动态设置排名
- oracle-sqldeveloper - 从 linux shell 脚本调用 sqlplus 时,日期值丢失时间部分
- vba - 缺少 VBA Listview 控件 - Windows7
- c# - VSTO Word 加载项:如何在数组单元格中添加内容控件