应用程序不适用于Google Play上的Nexus 7

时间:2012-09-05 21:50:21

标签: android android-manifest android-market-filtering android-permissions

我知道Nexus 7上的相机可用性,所以我更改了我的清单,不需要如下所示的许可:

<uses-permission android:name="android.permission.CAMERA" android:required="false"/>

该应用仍然无法使用。在这一点上,我对谈论uses-feature而非user-permission

的文档感到困惑
  

请注意您声明(或暗示)的系统功能   运行您的应用程序或Play商店所需的将不会使您的应用程序   应用程序可供Nexus 7用户使用。始终声明硬件   根据需要对您的应用程序不重要的功能=“false”然后   在运行时检测该功能是否存在并逐步增强   功能

这是什么交易?我对功能和权限之间的区别感到困惑。

1 个答案:

答案 0 :(得分:22)

uses-feature声明您的应用使用哪种类型的硬件/软件可用性。您可以使用它来自动缩小它将显示的设备类型。如果应用程序能够在没有它们的情况下仍然可以正常运行,您可以将这些功能声明为可选功能,并且旨在处理功能不可用的情况(例如使用您提到的Nexus 7)。

uses-permission声明您的应用允许使用哪些类型的功能。如果您声明了权限,就像您所做的那样,它让用户知道“嘿,这个应用程序可以使用我的相机”,他们可以决定是否批准该用法。您无法将权限标记为可选。

您应该将required属性保留在uses-permission标记之外,并使用uses-feature为相机添加另一个标记,并在该标记中将其标记为{{1} }。例如:

required="false"

编辑:阅读this document,您可能还需要添加:

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>

因为相机许可意味着需要这两个功能。它可以在没有这个额外标签的情况下工作,但为了以防万一,它可能不会过度具体。