我正在尝试通过应用修改手机上的某些设置,但我一直在努力 这个错误:
java.lang.SecurityException:Permission denial:写入设置需要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" />
这里有什么问题?
答案 0 :(得分:5)
尝试:
<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" />
注意:在清单中使用android:maxSdkVersion
并不好。你可以删除它。
答案 1 :(得分:4)
Android doc说,
android:maxSdkVersion
应用此权限的最高API级别。设置此属性是 如果您的应用所需的权限不再需要,则非常有用 从某个API级别开始。<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
这样,从API级别19开始,系统将不再授予 您的应用是WRITE_EXTERNAL_STORAGE权限。
您在哪个SDK版本中运行此代码?
适用于Android版本11&amp;在下面,将根据您的代码授予许可。
如果您不想限制特定sdk版本的权限,请删除maxSdkVersion属性。