Cómo usar el servicio de 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 la dirección a la que apunta la lente de la cámara en relación con el marco del vehículo y los asientos de 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. Estas características incluyen lo siguiente:

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 posterior, puedan continuar con la transmisión de la cámara sin interrupciones, independientemente de que los usuarios cambien 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 Google Automotive Services (GAS) deben enviar sus apps de 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 a AndroidManifest.xml la URL de la divulgación de la política de privacidad de la app. El nombre de 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 las apps obligatorias se oculta en la IU de Configuración de privacidad. Sin embargo, los OEM pueden anular este comportamiento configurando la siguiente marca como 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. Si quieres obtener más información para asignar un UID específico a una app nativa, consulta Control de acceso a discreción (DAC). Este acceso anticipado a la cámara se limita a las cámaras del sistema ubicadas en el exterior del cuerpo del vehículo.