我知道 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/