Tirar fotos

Observação: esta página se refere à classe Camera, que foi descontinuada. Recomendamos usar CameraX ou, para casos de uso específicos, Camera2. CameraX e Camera2 oferecem suporte ao Android 5.0 (nível 21 da API) e versões mais recentes.

Este guia ensina como capturar uma foto delegando o trabalho a outro app de câmera no dispositivo. Caso prefira criar seu próprio recurso de câmera, consulte Como controlar a câmera.

Suponha que você esteja implementando um serviço meteorológico com colaboração coletiva, que cria um mapa meteorológico global misturando fotos do céu tiradas por dispositivos que executam seu app cliente. Integrar as fotos é só uma pequena parte do aplicativo. O objetivo é tirar fotos com o mínimo de problemas possível, e não reinventar a câmera. A maioria dos dispositivos Android já tem pelo menos um aplicativo de câmera instalado. Neste guia, você vai aprender a fazer com que ele tire uma foto para você.

Solicitar o recurso de câmera

Se uma função essencial do seu aplicativo é tirar fotos, restrinja a visibilidade dele no Google Play para dispositivos que tenham câmera. Para anunciar que seu aplicativo depende de uma câmera, coloque uma tag <uses-feature> no arquivo de manifesto:

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

Caso seu aplicativo use, mas não precise de uma câmera para funcionar, configure android:required como false. Dessa forma, o Google Play vai permitir que dispositivos sem câmera façam o download do seu aplicativo. Você precisa verificar a disponibilidade da câmera durante a execução, chamando hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY). Se uma câmera não estiver disponível, os recursos da câmera vão precisar ser desativados.