Cómo usar el servicio de la cámara de Android

El servicio de cámara de Android comprende la pila de cámaras que se usa en dispositivos para la industria automotriz, así como en otros factores de forma, como teléfonos celulares, tablets y TVs. Para ver la arquitectura general de la cámara, consulta Cámara. En esta página, se abordan temas específicos de los dispositivos para la industria automotriz y el trabajo con la API de la cámara de Android.

Habilita el servicio de la cámara de Android

Para habilitar el servicio de la cámara de Android en la plataforma automotriz, el archivo de compilación del producto debe especificar ENABLE_CAMERA_SERVICE como true.

Características específicas de la cámara para vehículos

En el contexto de los dispositivos para vehículos, el HAL de la cámara debe incluir dos características distintivas específicas del factor de forma para vehículos:

Name Descripción
android.automotive.location Especifica el posicionamiento de las cámaras en relación con la estructura de la carrocería del vehículo.
android.automotive.lens.facing Indica hacia qué dirección está orientado el lente de una cámara en relación con la estructura de la carrocería del vehículo y los asientos para pasajeros.

En situaciones en las que las cámaras no se alinean con precisión con una ubicación o una orientación de lente específicas (lo que se indica con la presencia de *_OTHER en las características android.automotive.location o android.automotive.lens.facing), o cuando varias cámaras comparten la misma ubicación y dirección, el HAL de la cámara debe proporcionar características adicionales para permitir que las apps determinen con precisión la ubicación de la cámara. Entre estas características, se incluyen las siguientes:

Otorga acceso al usuario del sistema sin interfaz gráfica

Algunas apps del sistema y propias pueden acceder a la cámara como el usuario del sistema sin interfaz gráfica, también conocido como usuario 0. Esta función garantiza que las apps que son fundamentales para la seguridad, como la cámara retrovisor, puedan continuar transmitiendo la cámara sin interrupciones, independientemente del cambio de usuario en primer plano. Solo las apps que están firmadas por la plataforma y tienen el nuevo permiso android.permission.CAMERA_HEADLESS_SYSTEM_USER pueden acceder a la cámara como usuario 0.

En el caso de las apps que acceden a las cámaras como el usuario 0, los datos de la cámara DEBEN consumirse de forma local y NO DEBEN transmitirse fuera del dispositivo, incluidos los datos derivados de los datos de la cámara. Estas apps requieren que se otorgue previamente el permiso android.permission.CAMERA y deben cumplir con la política de permisos previos que se describe en Design for Driving para los requisitos de GAS.

Configura una lista de entidades permitidas de privacidad de la cámara

Los fabricantes de equipos originales (OEM) ahora pueden configurar apps de cámara específicas para que se incluyan en una lista de entidades permitidas que otorgue acceso a la cámara independientemente del estado del botón de activación de privacidad de la cámara. Esta función permite a los usuarios inhabilitar el acceso a la cámara para las apps de entretenimiento, como las redes sociales y las videoconferencias, y, al mismo tiempo, permitir el acceso a la cámara para ciertas apps incluidas en la lista de entidades permitidas.

Solo las apps del sistema y con privilegios que tengan el permiso android.permission.CAMERA_PRIVACY_ALLOWLIST pueden usar esta función. Los socios de los Servicios de Google para la Automoción (GAS) deben enviar sus apps incluidas en la lista de entidades permitidas para su revisión y cumplir con la política de la lista de entidades permitidas de privacidad. Para obtener más información, consulta Android para vehículos.

Agregar una app a la lista de aplicaciones permitidas

En el directorio etc/sysconfig:

  1. Agrega el nombre del paquete de la app en un archivo XML de configuración del sistema:

    <!-- 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. Agrega la URL de la divulgación de la política de privacidad de la app a AndroidManifest.xml. El nombre del meta-data debe ser privacy_policy.

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

De forma predeterminada, el botón de activación de privacidad de la cámara para las apps incluidas en la lista de entidades permitidas o requeridas está oculto en la IU de Configuración de privacidad. Sin embargo, los OEMs pueden anular este comportamiento configurando la siguiente marca en TRUE. Esto permite a los OEMs personalizar la visibilidad del botón de activación de privacidad de la cámara para las apps requeridas según sus preferencias.

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

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

Obtén acceso anticipado a la cámara

Las apps específicas orientadas a la seguridad y urgentes pueden acceder a la cámara antes de que finalice el proceso de inicio de Android. Sin embargo, este acceso se otorga exclusivamente a los clientes con privilegios con UID AID_AUTOMOTIVE_EVS. Para obtener más información sobre cómo asignar un UID específico a una app nativa, consulta Control de acceso discrecional (DAC). Este acceso anticipado a la cámara se limita a las cámaras del sistema ubicadas en el exterior de la carrocería del vehículo.