У меня есть собственное приложение камеры, и мне нужно иметь возможность включать / выключать вспышку (на самом деле режим фонарика).
Какое разрешение мне нужно в этом случае?
1. только
<uses-feature android:name="android.hardware.camera"/>
<uses-permission android:name="android.permission.CAMERA"/>
2. Те из 1 плюс:
<permission android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal"/>
Я думаю, это используется, когда вы хотите использовать Flash, но без камеры (например, в этом случае: Android - использование вспышки камеры)
3. Те из 1 плюс:
<uses-permission android:name="android.hardware.camera.flash"/>
ИЗМЕНИТЬ (спасибо @maclir):
Выше строка неверна. Правильный:
<uses-permission android:name="android.permission.CAMERA"/>
developer.android.com: «Подкомпонент. Приложение использует вспышку камеры устройства». (http://developer.android.com/guide/topics/manifest/uses-feature-element.html).
Во всех 3 случаях, протестированных на 2 устройствах, все работает нормально - я могу активировать / деактивировать вспышку, но я хочу быть уверен, что именно означает каждое из них. Странно, что даже без варианта 3 он работает нормально ... для чего используется вариант 3?
Думаю, что-то упускаю ...
ОТВЕТ
<uses-permission android:name="android.permission.CAMERA" />
является обязательным для использования камеры (я не использую камеру через намерение, у меня есть приложение для настройки камеры)
и:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
- специальные функции камеры, которые я использую в приложении.
android:required="false"
означает, что Google Play не предотвратит установку приложения на устройства, на которых нет этих функций камеры, поэтому пользователь, имеющий устройство без камеры и вспышки, сможет установить приложение из магазина.
http://developer.android.com/reference/android/hardware/Camera.html