我见过很多人询问和解释两者之间区别的具体案例,但我不能也似乎不理解一般的区别。两者是同义词吗?一个是否暗示另一个?
我见过很多人询问和解释两者之间区别的具体案例,但我不能也似乎不理解一般的区别。两者是同义词吗?一个是否暗示另一个?
建议<uses-feature>
搭配使用<uses-permission>
。如果您的应用可以在没有它的情况下运行,那么您的应用的每个功能都需要<uses-feature>
带有属性。这样做的原因是 Google Play 会过滤掉具有以编程方式实现但不受硬件支持的功能的应用程序,因此您看不到它们。android:required="false"
例如,在其他几个权限中,您的应用程序有一个权限<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>
没有。
<uses-permission>
说“嘿,Android(和相关的分销渠道),请让用户允许我做 X”。<uses-feature>
说“嘿,Android(和相关的分销渠道),我有兴趣在具有 Y 功能的硬件上运行”。<uses-feature>
如果硬件不符合您的要求,但用户不参与,可能会将您过滤出 Play 商店(和其他渠道)。有时。如果您请求某些权限,例如
CAMERA
,Android 默认假定您需要相应的硬件。如果需要,您可以使用<uses-feature>
andandroid:required="false"
覆盖该默认行为。