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

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

我知道 Nexus 7 上的相机可用,所以我更改了我的 list ,使得不需要权限如下:

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

该应用程序仍然不可用。在这一点上,我对谈论 uses-feature 而不是 user-permission 的文档感到困惑:

Be aware of which system features that you declare (or imply) are required to run your application or the Play Store will not make your application available to Nexus 7 users. Always declare hardware features that aren't critical to your app as required="false" then detect at runtime if the feature is present and progressively enhance functionality

这是怎么回事?我对功能和权限之间的区别感到困惑。

最佳答案

uses-feature 声明您的应用使用的硬件/软件可用性类型。您可以使用它来自动缩小显示的设备类型。您可以将这些功能中的任何一个声明为可选功能,前提是应用在没有这些功能的情况下仍能正常运行,并且旨在处理该功能不可用的情况(例如您提到的 Nexus 7)。

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

您应该将 required 属性从 uses-permission 标签中移除,并使用 uses-feature 为相机添加另一个标签,并在该标记中,将其标记为 required="false"。例如:

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

编辑:阅读this document ,看来您可能还必须添加:

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

因为相机权限意味着这两个功能的要求。如果没有这个额外的标签,它可能会工作,但为了以防万一,过于具体可能不会有什么坏处。

关于android - 应用程序不适用于 Google Play 上的 Nexus 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290295/

相关文章:

java - 我需要帮助理解 java.lang.StringIndexOutOfBoundsException

android - 如何更改 NsdManager 使用的 android 设备名称?

java - detector.isOperational() 在 android 上总是 false

android - 如何找出我的 Android 应用程序有哪些硬件要求?

Android App 显示与 ICS 4.0.4 设备 Google Play 不兼容

android - 如何从右到左缩放按钮,android动画

android - 不支持三星 Galaxy S8+ – dream2lteks

android - AAPT2 错误 : check logs for details: unknown element <action> found

android-manifest - Android 应用程序未出现在 1.5 和 1.6 设备的市场中,蓝牙是 android :required ="false"

android - 如何在android market上以横屏模式发布android应用程序截图?