我刚刚了解到android清单文件中较新的标签"uses-permission-sdk-23“
<uses-permission-sdk-23 android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
有谁能提供这两者之间的区别吗?
发布于 2016-02-23 14:47:49
如果应用程序在SDK版本23或更高版本的设备上运行,则为。如果设备正在运行SDK版本22或更低版本的
当您更新应用程序以包含需要附加权限的新功能时。如果用户在运行SDK版本22或更低版本的设备上更新应用程序,系统会在安装时提示用户授予该更新中声明的所有新权限。如果新功能足够小,您可能更喜欢在这些设备上完全禁用该功能,这样用户就不必授予额外的权限来更新应用程序。使用uses-permission-sdk-23元素而不是uses-permission
仅当应用程序运行在支持运行时权限模型的平台上时,才能请求权限。
有关更多信息,请参阅。uses - Permission sdk 23
发布于 2017-03-22 03:58:21
摘要
SDK会对所有23+都生效,<uses-permission-sdk-23>
只会对SDK SDK授予权限。
什么时候应该使用<uses-permission-sdk-23>
?
<uses-permission-sdk-23>
tag.sdk-23
权限是否也会导致应用程序在Play compatability.中被过滤,但如果您打算这样做,文档建议您使用<uses-feature>
元素来声明硬件应用商店
推荐
通常,如果您的应用程序不需要支持SDK 22或更低版本,或者如果SDK 22或更低版本不需要您请求的权限,则认为使用<uses-permission-sdk-23>
是最佳实践,因为很明显,此权限是在运行时请求的。
否则,应该使用<uses-permission>
,因为这是向后兼容的,并且该行为在任何SDK版本上都是正确的;22及更低版本,安装时将请求权限。23及以上版本,您可以在运行时请求。
您应该尽可能在运行时请求权限,因为它允许您向用户解释为什么需要某些权限,而不是在用户可能尚未建立对应用程序的信任时,在安装时使用权限列表提示他们。
备注
这两个属性都接受maxSdkVersion
属性,当旧设备需要权限而新设备不需要权限时,可以使用该属性。(例如,安卓文档中显示的WRITE_EXTERNAL_STORAGE
示例。)
发布于 2016-02-23 14:45:35
通过使用<uses-permission-sdk-23>
元素而不是<uses-permission>
,只有当应用程序在支持运行时权限模型的平台上运行时,才能请求权限,在该模型中,用户在应用程序运行时向其授予权限。
这是为了支持棉花糖(-23)的运行时权限特性而引入的。
这只是指定应用程序需要特定的权限,但仅当应用程序运行在SDK版本23或更高版本的设备上时。如果设备运行的是SDK版本22或更低版本,则该应用程序没有指定的权限。当您更新应用程序以包含需要附加权限的新功能时,此元素非常有用。如果用户在运行SDK版本22或更低版本的设备上更新应用程序,系统会在安装时提示用户授予该更新中声明的所有新权限。
您可以参考documentation。
https://stackoverflow.com/questions/35570533
复制相似问题