Ответ 1
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"/>
РЕДАКТИРОВАТЬ: Чтение этого документа, возможно, вам также придется добавить:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
поскольку разрешение камеры подразумевает требование этих двух функций. Он может работать без этого дополнительного тега, но на всякий случай, вероятно, не будет больно быть чрезмерным.