Bha*_*iya 22 android manifest android-manifest
我刚认识了一个名为" uses-permission-sdk-23 "的android清单文件中的新标签
<uses-permission-sdk-23 android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供这两者之间的区别吗?
<uses-permission>适用于所有SDK,<uses-permission-sdk-23>并仅将权限应用于SDK 23+.
<uses-permission-sdk-23>?对于Android SDK 23及更高版本,您可以选择在运行时请求权限,但安装时权限将处于默认状态,并且在安装时不会提示用户.(基本上,这可以用于提示用户在需要使用的基础上授予权限,并且您有机会解释为什么需要它.)
但是,对于SDK 22及更低版本,将在安装时提示用户输入权限.由于某些权限对用户来说似乎是可疑或狡猾的,因此您可能不希望为SDK 22及更低版本请求这些权限,因为您无法事先解释为什么需要它们,因此<uses-permission-sdk-23>标记.
此外:文档不清楚sdk-23权限是否也会导致应用程序在Play商店中被过滤,但如果您打算这样做,文档建议您使用<uses-feature>元素来声明硬件兼容性.
通常,<uses-permission-sdk-23>如果您的应用不需要支持SDK 22及更低版本,或者如果SDK 22或更低版本不需要您请求的权限,那么最佳做法是使用,因为很明显在运行时请求了此权限.
否则,<uses-permission>应该使用,因为这是向后兼容的,并且任何SDK版本的行为都是正确的; 22及以下,将在安装时请求许可.23及以上,您可以在运行时请求.
您应该尽可能在运行时请求权限,因为它允许您向用户解释为什么需要某些权限,而不是仅在用户可能未在应用程序中建立信任时在安装时提示权限列表.
这两个都接受一个maxSdkVersion属性,该属性可以在旧设备需要权限时使用,但对于较新的设备不是必需的.(例如,WRITE_EXTERNAL_STORAGEAndroid文档中显示的示例.)
参考:( Android文档)
如果应用程序在SDK版本23或更高版本的设备上运行.如果设备运行的是SDK版本22或更低版本
更新应用程序以包含需要其他权限的新功能时.如果用户在运行SDK版本22或更低版本的设备上更新应用程序,系统会在安装时提示用户授予在该更新中声明的所有新权限.如果新功能足够小,您可能希望在这些设备上完全禁用该功能,因此用户无需授予更新应用程序的其他权限.通过使用uses-permission-sdk-23元素而不是uses-permission
只有当应用程序在支持运行时权限模型的平台上运行时,您才可以请求权限,在该平台上,用户在应用程序运行时向其授予权限.
有关更多信息,请参阅此 用途 - 权限sdk 23
| 归档时间: |
|
| 查看次数: |
7583 次 |
| 最近记录: |