android.permission.WRITE_SETTINGS 错误

android.permission.WRITE_SETTINGS error

我正在尝试通过应用程序修改 phone 上的某些设置,但我不断收到 此错误:

java.lang.SecurityException: Permission denial: writing to settings requires android.permission.WRITE_SETTINGS

我已将此权限添加到我的清单中,但错误仍然存​​在。 这是我的清单中的一个片段:

<uses-permission
    android:name="android.permission.MEDIA_CONTENT_CONTROL"
    android:maxSdkVersion="11" />
<uses-permission
    android:name="android.permission.CHANGE_CONFIGURATION"
    android:maxSdkVersion="11" />
<uses-permission
    android:name="android.permission.READ_PHONE_STATE"
    android:maxSdkVersion="11" />
<uses-permission
    android:name="android.permission.WRITE_SETTINGS"
    android:maxSdkVersion="11" />

这里有什么问题?

试一试:

<uses-permission
    android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
<uses-permission
    android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission
    android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

<uses-sdk
    android:maxSdkVersion="11"
    android:minSdkVersion="7"
    android:targetSdkVersion="9" />

注意:在manifest中使用android:maxSdkVersion是不好的。你可以删除它。

Android 医生说,

android:maxSdkVersion
The highest API level at which this permission should be granted to your app. Setting this attribute is useful if the permission your app requires is no longer needed beginning at a certain API level.

<uses-permission
     android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     android:maxSdkVersion="18" />

This way, beginning with API level 19, the system will no longer grant your app the WRITE_EXTERNAL_STORAGE permission.

你运行这个代码在哪个SDK版本?

对于 Android 版本 11 及以下,将根据您的代码授予权限。

如果您不想限制特定 sdk 版本的权限,请删除 maxSdkVersion 属性。