Service de l'appareil photo Android

L'Android Camera Service (ACS) comprend la pile de caméras 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 Caméra. Cette page se concentre sur les sujets spécifiques aux appareils automobiles et sur l'utilisation de l' API Android Camera.

Activer l'Android Camera Service

Pour activer l'Android Camera Service sur la plate-forme automobile, le fichier makefile du produit doit spécifier ENABLE_CAMERA_SERVICE comme true.

Caractéristiques spécifiques aux caméras automobiles

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

Élément 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 vers laquelle un objectif de caméra est orienté par rapport à la carrosserie du véhicule et aux sièges passagers.

Lorsque les caméras ne sont pas précisément alignées sur un emplacement ou une orientation d'objectif spécifiques (indiqués par la présence de *_OTHER dans les android.automotive.location ou android.automotive.lens.facing caractéristiques), ou lorsque plusieurs caméras partagent le même emplacement et la même direction, la HAL de la caméra doit fournir des caractéristiques supplémentaires pour permettre aux applications de déterminer avec précision l'emplacement de la caméra. Ces caractéristiques incluent les suivantes :

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

Certaines applications système et propriétaires (1P) peuvent accéder à la caméra en tant qu'utilisateur système headless, également appelé utilisateur 0. Cela permet de vérifier que les applications critiques pour la sécurité, telles que la caméra de recul, peuvent continuer à diffuser des flux de 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 à la caméra en tant qu'utilisateur 0.

Pour les applications accédant aux caméras en tant qu'utilisateur 0, les données de la caméra DOIVENT être utilisé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 la règle d'autorisation pré-accordée décrite dans la section Conception pour la conduite pour les exigences Google intégré.

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

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

Seules les applications système et privilégiées disposant de l'autorisation android.permission.CAMERA_PRIVACY_ALLOWLIST peuvent utiliser cette fonctionnalité. Les partenaires Google Automotive Services (GAS) doivent envoyer leurs applications dans la liste d'autorisation pour examen et respecter la règle de la liste d'autorisation de confidentialité. 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 de 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 can't turn on
    privacy 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 divulgation des règles de confidentialité de l'application à AndroidManifest.xml. Le nom de l'élément 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 Paramètres de confidentialité. Toutefois, les OEM peuvent remplacer ce comportement en définissant l'indicateur suivant sur true. Cela leur permet de personnaliser la visibilité du bouton de confidentialité de la caméra 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>

Bénéficier d'un accès anticipé à la caméra

Les applications spécifiques sensibles au temps et axées sur la sécurité peuvent accéder à la caméra avant la fin du processus de démarrage d'Android. Toutefois, cet accès est exclusivement accordé aux clients privilégiés avec le UID AID_AUTOMOTIVE_EVS. Pour en savoir plus sur l'attribution d'un UID spécifique à une application système, consultez Contrôle des accès discrétionnaire (DAC). Cet accès anticipé à la caméra est limité aux caméras système positionnées à l'extérieur de la carrosserie du véhicule.