我们目前正在开发一个应用程序,我们想要改变一些系统设置,当然有用户的许可。 android文档说明,要做到这一点,您必须添加以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
此外,还必须明确要求用户启用此权限。 从https://developer.android.com/reference/android/manifest.permission#write_settings中摘录如下:
注意:如果应用程序的目标是API级别23或更高,应用程序用户必须通过权限管理屏幕将此权限明确授予应用程序。 应用程序通过发送带有actionsettings.action_manage_write_settings
的意图请求用户的批准。 应用程序可以通过调用settings.system.CanWrite()
来检查它是否具有此授权。
到目前为止,情况是很清楚的。 然而,当权限被添加到AndroidManifest.xml文件时,Android Studio却抱怨“权限只被授予系统应用”。 现在,这是令人困惑的,因为我没有找到任何文档说明它确实只授予系统应用程序。
那么,我想问一下,是否有人遇到过这个问题,是否有某种文档对此进行了详细解释? 还是我只是错过了什么?
正如用户passsy在Brian提供的stackoverflow问题中所述,android.permission.write_settings
具有“Signature”
的Android:ProtectionLevel
,这使得该权限在API级别23之后无法在用户应用程序中使用。
有关权限保护级别的说明,请参阅https://developer.android.com/guide/topics/manifest/permission-element#plevel。