Prendre des photos

Remarque : La classe Camera, qui est mentionnée sur cette page, est obsolète. Nous vous recommandons d'utiliser CameraX ou, dans des cas d'utilisation spécifiques, Camera2. CameraX et Camera2 sont compatibles avec Android 5.0 (niveau d'API 21) ou version ultérieure.

Cette leçon explique comment prendre une photo en déléguant la tâche à une autre application Appareil photo sur l'appareil. (Si vous préférez créer les fonctionnalités de votre propre appareil photo, consultez Contrôler l'appareil photo.)

Supposons que vous implémentez un service météorologique alimenté par les utilisateurs, qui crée une carte météo mondiale en combinant les images du ciel prises par les appareils équipés de votre application cliente. L'intégration de photos ne représente qu'une petite partie de votre application. Vous voulez prendre des photos facilement, sans réinventer l'appareil photo. Heureusement, la plupart des appareils Android ont déjà d'au moins une application Appareil photo. Dans cette leçon, vous allez apprendre comment lui faire prendre une photo pour vous.

Demander la fonctionnalité Appareil photo

Si l'une des fonctions essentielles de votre application consiste à prendre des photos, limitez sa visibilité sur Google Play aux appareils équipés d'un appareil photo. Pour annoncer que votre application nécessite un appareil photo, placez une balise <uses-feature> dans le fichier manifeste :

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

Si votre application fonctionne sans avoir toutefois besoin d'un appareil photo, définissez plutôt android:required sur false. De cette façon, Google Play autorisera les appareils sans appareil photo à télécharger votre application. Vous devez ensuite vérifier la disponibilité de l'appareil photo au moment de l'exécution en appelant hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY). S'il ne l'est pas, vous devez alors désactiver ses fonctionnalités.