首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >uses-permission-sdk-23和uses-permission之间的区别?

uses-permission-sdk-23和uses-permission之间的区别?
EN

Stack Overflow用户
提问于 2016-02-23 14:39:13
回答 6查看 9.9K关注 0票数 24

我刚刚了解到android清单文件中较新的标签"uses-permission-sdk-23

代码语言:javascript
运行
复制
<uses-permission-sdk-23 android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />

有谁能提供这两者之间的区别吗?

EN

Stack Overflow用户

发布于 2017-03-22 03:58:21

摘要

SDK会对所有23+都生效,<uses-permission-sdk-23>只会对SDK SDK授予权限。

什么时候应该使用<uses-permission-sdk-23>

  • Android SDK 23及以上版本,您可以选择在运行时请求权限,但安装时权限将保持默认状态,安装时不会提示用户。(本质上,这可以用来提示用户根据使用需要授予权限,您有机会解释为什么SDK22和更低版本是needed.)
  • However,,安装时会提示用户权限。由于用户可能认为某些权限可疑或不可靠,因此您可能不想为SDK22及更低版本请求这些权限,因为您无法事先解释为什么需要这些权限,因此<uses-permission-sdk-23> tag.
  • Additionally:文档并不清楚sdk-23权限是否也会导致应用程序在Play compatability.

中被过滤,但如果您打算这样做,文档建议您使用<uses-feature>元素来声明硬件应用商店

推荐

通常,如果您的应用程序不需要支持SDK 22或更低版本,或者如果SDK 22或更低版本不需要您请求的权限,则认为使用<uses-permission-sdk-23>是最佳实践,因为很明显,此权限是在运行时请求的。

否则,应该使用<uses-permission>,因为这是向后兼容的,并且该行为在任何SDK版本上都是正确的;22及更低版本,安装时将请求权限。23及以上版本,您可以在运行时请求。

您应该尽可能在运行时请求权限,因为它允许您向用户解释为什么需要某些权限,而不是在用户可能尚未建立对应用程序的信任时,在安装时使用权限列表提示他们。

备注

这两个属性都接受maxSdkVersion属性,当旧设备需要权限而新设备不需要权限时,可以使用该属性。(例如,安卓文档中显示的WRITE_EXTERNAL_STORAGE示例。)

参考:(Android Documentation)

票数 8
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35570533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档