![](/img/trans.png)
[英]<uses-permission> vs <permission> in Android 6.0 Manifest.xml
[英]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.