使用-权限与使用-功能

2022-09-01 07:21:27

我见过许多具体的案例,人们问和人们解释两者之间的区别,但我不能,似乎也不理解一般的区别。这两者是同义词吗?一个是否意味着另一个?


答案 1

这两者是同义词吗?

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

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

一个是否意味着另一个?

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


答案 2

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

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

<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>


推荐