Utiliser le service Appareil photo d'Android

Le service d'appareil photo Android comprend la pile d'appareil photo utilisée dans les appareils automobiles, ainsi que dans d'autres facteurs de forme tels que les téléphones mobiles, les tablettes et les téléviseurs. Pour afficher l'architecture globale de la caméra, consultez la section Caméra. Cette page se concentre sur les sujets spécifiques aux appareils automobiles et à l'utilisation de l'API Android Camera.

Activer le service Appareil photo Android

Pour activer le service de caméra Android sur la plate-forme automobile, le fichier makefile du produit doit spécifier ENABLE_CAMERA_SERVICE en tant que true.

Caractéristiques de l'appareil photo spécifiques aux véhicules

Dans le contexte des appareils automobiles, la HAL de la caméra doit inclure deux caractéristiques distinctives spécifiques au facteur de forme automobile:

Nom Description
android.automotive.location Spécifie le positionnement des caméras par rapport à la carrosserie du véhicule.
android.automotive.lens.facing Indique la direction dans laquelle l'objectif d'une caméra est orienté par rapport au châssis de la carrosserie et aux sièges passagers.

Dans les cas où les appareils photo ne correspondent pas précisément à un emplacement ou à une orientation spécifique (indiqué par la présence de *_OTHER dans les caractéristiques android.automotive.location ou android.automotive.lens.facing), ou lorsque plusieurs caméras partagent le même emplacement et la même direction, le HAL de la caméra doit fournir des caractéristiques supplémentaires pour permettre aux applications de déterminer précisément sa position. Ces caractéristiques incluent les suivantes:

Accorder l'accès à l'utilisateur système headless

Certaines applications système et first party (1P) peuvent accéder à l'appareil photo en tant qu'utilisateur système headless, également appelé utilisateur 0. Cette fonctionnalité garantit que les applications essentielles à la sécurité, telles que la caméra de recul, peuvent continuer à diffuser le flux de la caméra sans interruption, quel que soit le changement d'utilisateur au premier plan. Seules les applications signées par la plate-forme et disposant de la nouvelle autorisation android.permission.CAMERA_HEADLESS_SYSTEM_USER peuvent accéder à l'appareil photo en tant qu'utilisateur 0.

Pour les applications qui accèdent aux caméras en tant qu'utilisateur 0, les données de la caméra DOIVENT être consommées localement et NE DOIVENT PAS être transmises en dehors de l'appareil, y compris les données dérivées des données de la caméra. Ces applications nécessitent que l'autorisation android.permission.CAMERA soit pré-accordée et doivent respecter le règlement sur l'autorisation pré-accordée décrit dans Concevoir pour la conduite pour les exigences GAS.

Configurer une liste d'autorisation de confidentialité de la caméra

Les fabricants d'équipement d'origine (OEM) peuvent désormais configurer des applications d'appareil photo spécifiques pour qu'elles soient incluses dans une liste d'autorisation qui accorde l'accès à l'appareil photo, quelle que soit l'état du bouton d'activation/de désactivation de la confidentialité de l'appareil photo. Cette fonctionnalité permet aux utilisateurs de désactiver l'accès à l'appareil photo pour les applications de divertissement, telles que les réseaux sociaux et les applications de visioconférence, tout en autorisant l'accès à l'appareil photo pour certaines applications de la liste d'autorisation.

Seules les applications système et privilégiées auxquelles l'autorisation android.permission.CAMERA_PRIVACY_ALLOWLIST a été accordée peuvent utiliser cette fonctionnalité. Les partenaires Google Automotive Services (GAS) doivent envoyer leurs applications à la liste d'autorisation pour examen et respecter les règles de confidentialité de la liste d'autorisation. Pour en savoir plus, consultez Android for Cars.

Ajouter une application à la liste d'autorisation

Dans le répertoire etc/sysconfig:

  1. Ajoutez le nom du package de l'application dans un fichier XML de configuration système:

    <!-- In an xml file under etc/sysconfig —>
    
    <!--
    Allowlisted packages for the camera privacy toggle. Users will not be able to turn the privacy on for these packages as OEM requires camera access for these packages to preserve user safety.
    -->
    
    <config>
        <camera-privacy-allowlisted-app package="package_name" />
    </config>
    
  2. Ajoutez l'URL de la page des règles de confidentialité de l'application à AndroidManifest.xml. Le nom de l'meta-data doit être privacy_policy.

    <meta-data android:name="privacy_policy" android:value= privacy policy URL/>
    

Par défaut, le bouton de confidentialité de la caméra pour les applications de la liste d'autorisation ou les applications requises est masqué dans l'interface utilisateur des paramètres de confidentialité. Toutefois, les OEM peuvent remplacer ce comportement en définissant l'indicateur suivant sur TRUE. Cela permet aux OEM de personnaliser la visibilité du bouton d'activation/de désactivation de la confidentialité de l'appareil photo pour les applications requises en fonction de leurs préférences.

<!-- Whether to show the toggle to turn on the camera privacy for required apps -->

<bool name="config_show_camera_required_apps_toggle">false</bool>

Obtenir un accès anticipé à l'appareil photo

Des applications spécifiques à la sécurité et à la rapidité peuvent accéder à la caméra avant la fin du processus de démarrage d'Android. Cependant, cet accès n'est accordé qu'aux clients privilégiés disposant du rôle UID AID_AUTOMOTIVE_EVS. Pour en savoir plus sur l'attribution d'un UID spécifique à une application native, consultez la section Contrôle des accès discrétionnaire (DAC). Cet accès anticipé à la caméra est limité aux caméras du système situées à l'extérieur de la carrosserie du véhicule.