Делайте фотографии

Примечание. Эта страница относится к классу Camera , который устарел. Мы рекомендуем использовать CameraX или, в особых случаях, Camera2 . И CameraX, и Camera2 поддерживают Android 5.0 (уровень API 21) и выше.

В этом уроке рассказывается, как сделать снимок, делегировав работу другому приложению камеры на устройстве. (Если вы предпочитаете создать собственную функцию камеры, см. раздел «Управление камерой» .)

Предположим, вы реализуете краудсорсинговый метеорологический сервис, который создает глобальную карту погоды путем объединения фотографий неба, сделанных устройствами, на которых работает ваше клиентское приложение. Интеграция фотографий — это лишь малая часть вашего приложения. Вы хотите делать фотографии с минимальными усилиями, а не изобретать камеру заново. К счастью, на большинстве устройств Android уже установлено хотя бы одно приложение камеры. В этом уроке вы узнаете, как заставить его фотографировать вас.

Запросить функцию камеры

Если важной функцией вашего приложения является фотографирование, ограничьте его видимость в Google Play устройствами с камерой. Чтобы объявить, что ваше приложение зависит от наличия камеры, поместите тег <uses-feature> в файл манифеста:

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

Если ваше приложение использует, но не требует камеры для работы, вместо этого установите android:required значение false . При этом Google Play позволит устройствам без камеры загружать ваше приложение. В этом случае вы обязаны проверить доступность камеры во время выполнения, вызвав hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) . Если камера недоступна, вам следует отключить ее функции.