繁体   English   中英

使用权限与使用 - 功能

[英]Uses-Permission vs Uses-Feature

我已经看到许多人询问的具体案例和人们解释两者之间的差异,但我不能也不会理解一般差异。 这两个是同义词吗? 一个人是否意味着另一个?

这两个是同义词吗?

不, <uses-permission>表示“嘿,Android(和相关的分销渠道),请让用户允许我做X”。 <uses-feature>说“嘿,Android(和相关的分销渠道),我有兴趣在功能Y的硬件上运行”。

如果硬件不符合您的要求, <uses-feature>可能会过滤掉Play商店(和其他渠道),但用户不会参与其中。

一个人是否意味着另一个?

有时。 如果您请求某些权限,例如CAMERA ,Android默认情况下会假定您需要相应的硬件 如果需要,您可以使用<uses-feature>android:required="false"覆盖默认行为。

建议使用<uses-feature><uses-permission> 如果您的应用可以在没有它的情况下工作,那么您的应用的每个功能都需要具有属性android:required="false" <uses-feature> 这样做的原因是Google Play过滤掉了具有以编程方式实现但硬件不支持的功能的应用程序,因此您在那里看不到它们。

例如,在其他几个权限中,您的应用具有权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 如果某个设备没有GPS功能,则此设备将无法在Google Play中看到此应用。 如果你的应用程序在没有GPS连接的情况下完全正常运行,那么解决方案就是添加:

<uses-feature android:name="android.hardware.location" android:required="false"/> 
<uses-feature android:name="android.hardware.location.gps" android:required="false"/>
<uses-feature android:name="android.hardware.location.network" android:required="false"/>

因此,正如@CommonsWare已经提到的那样, <uses-feature>会覆盖<uses-permission>的默认行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM