使用功能android:required=";假;被忽视

使用功能android:required=";假;被忽视,android,uses-feature,Android,Uses Feature,在我的AndroidManifest.xml文件中,我有以下两行: <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:required="false" android:name="android.hardware.camera" /> 但是当我上传到Google Play时,它表明需要摄像头。如果我使用a

在我的AndroidManifest.xml文件中,我有以下两行:

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

但是当我上传到Google Play时,它表明需要摄像头。如果我使用aapt工具,它会显示: “使用功能:name='android.hardware.camera'”

有人知道为什么它会忽略我的代码并要求设备配备摄像头吗

编辑:以下是我的整个“使用”部分供参考:

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

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

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

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

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

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

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

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

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

<uses-permission                        android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission                        android:name="asn.apps.asncrm.permission.C2D_MESSAGE" />
<uses-permission                        android:name="com.google.android.c2dm.permission.SEND" />
<uses-permission                        android:name="android.permission.WAKE_LOCK" />

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

尝试将此附加标记添加到您的Android清单中:

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

这是因为,
android.permission.CAMERA
权限意味着需要以下两个功能:
android.hardware.CAMERA
android.hardware.camera.autofocus

[已编辑]


另外,如果您的清单中有任何
标记,其中一个库可能需要摄像头功能。

在我的应用程序中,我希望覆盖摄像头权限,即使应用程序可用于没有摄像头的设备,我声明清单权限,如下所示。我已经验证了该应用程序在没有摄像头的设备上的play store上可用

不确定这是否有助于您克服您的问题(因为您提到了使用第三方库),但请尝试一下,并让我知道

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

<uses-feature
    android:name="android.permission.CAMERA"
    android:required="false" /> // this is the one I have extra, please add and test

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

//这是我有额外的,请添加和测试

为什么不需要摄像头硬件就要请求摄像头许可?应用程序中有一个点,他们可以打开摄像头拍照。但这是可选的,并且不是应用程序其余部分正常运行所必需的。不会解决您的问题,但您应该使用
android.hardware.camera2
,因为
android.hardware.camera
在API 21中已被弃用。你的最小sdk是什么?MinsdkVersion15 targetSdkVersion 22谢谢你的回复。我已经把它放在那里了,并编辑了我的答案,以提供androidmanifest.xml的其余“使用”部分。您的清单中有任何
标记吗?如果是这样的话,其中一个库可能需要一个摄像头功能。我想你已经了解了一些事情-我正在引用PDF417.mobi的类。如果他们以某种方式要求安装摄像头,有没有办法超越这一点?我不知道;如果有一种方法可以覆盖库的要求,我会感到惊讶,因为这会使库不可靠,并可能使你的应用程序崩溃。我引用的库是一个.aar文件。我能够解压.aar文件,编辑他们的AndroidManifest.xml文件,并将android:required=“false”添加到相机行。然后重新压缩文件并重新构建项目,它解决了我的问题