在我的AndroidManifest.xml文件中,我有以下两行:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:required="false" android:name="android.hardware.camera" />
但是当我上传到Google Play时,它表示相机是必需的。如果我使用aapt工具,它会显示: “uses-feature: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"/>
答案 0 :(得分:4)
尝试将此额外标记添加到Android清单中:
<uses-feature android:required="false" android:name="android.hardware.camera.autofocus" />
这样做的原因是according to the docs,android.permission.CAMERA
权限意味着需要以下2个功能:android.hardware.camera
和
android.hardware.camera.autofocus
。
[EDITED]
此外,如果您的清单中有任何<uses-library>
个标签,则其中一个库可能需要相机功能。
答案 1 :(得分:0)
在我想要覆盖相机权限的应用程序中,即使应用程序可用于没有相机的设备,我声明了清单权限,如下所示。我已经确认该应用程序可以在没有摄像头的设备上的Play商店中使用。
不确定这是否有助于您克服问题(因为您提到了第三方库的使用),但请试一试并告诉我。
<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" />