Использует функцию Android:required="false" игнорируется
В моем файле AndroidManifest.xml у меня есть эти 2 строки:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:required="false" android:name="android.hardware.camera" />
Но потом, когда я загружаю в Google Play, это означает, что камера требуется. И если я использую инструмент AAPT, он показывает: "использует-функция: имя ='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"/>
2 ответа
Попробуйте добавить этот дополнительный тег в манифест Android:
<uses-feature android:required="false" android:name="android.hardware.camera.autofocus" />
Это объясняется тем, что, согласно документам, android.permission.CAMERA
разрешение подразумевает, что необходимы следующие 2 функции: android.hardware.camera
а также android.hardware.camera.autofocus
,
[EDITED]
Кроме того, если у вас есть <uses-library>
Тэги в вашем манифесте, одна из библиотек может потребовать функцию камеры.
В моем приложении, где я хочу переопределить разрешение камеры, т.е. сделать приложение доступным для устройств без камеры, я объявляю разрешения для манифеста, как показано ниже. Я проверил, что приложение доступно в магазине игр на устройствах без камеры.
Не уверен, поможет ли это вам решить вашу проблему (поскольку вы упомянули об использовании сторонней библиотеки), но, пожалуйста, попробуйте и дайте мне знать.
<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" />