Usar o Android Camera Service

O serviço de câmera do Android compreende a pilha de câmera usada em dispositivos automotivos, bem como em outros formatos, como smartphones, tablets e TVs. Para conferir a arquitetura geral da câmera, consulte Câmera. Esta página se concentra em tópicos específicos para dispositivos automotivos e em como trabalhar com a API Camera do Android.

Ativar o serviço de câmera do Android

Para ativar o serviço de câmera do Android na plataforma automotiva, o makefile do produto precisa especificar ENABLE_CAMERA_SERVICE como true.

Características da câmera específicas para o setor automotivo

No contexto de dispositivos automotivos, a HAL da câmera precisa incluir duas características distintas específicas do formato automotivo:

Nome Descrição
android.automotive.location Especifica o posicionamento das câmeras em relação ao chassi do veículo.
android.automotive.lens.facing Indica para qual direção a lente da câmera está voltada em relação à estrutura do veículo e aos assentos do passageiro.

Em situações em que as câmeras não se alinham com precisão a uma localização ou orientação de lente específica (indicada pela presença de *_OTHER nas características android.automotive.location ou android.automotive.lens.facing), ou quando várias câmeras compartilham o mesmo local e direção, o HAL da câmera precisa fornecer outras características para permitir que os apps determinem com precisão a localização da câmera. Essas características incluem:

Conceder acesso ao usuário do sistema headless

Alguns apps do sistema e próprios podem acessar a câmera como o usuário do sistema sem cabeça, também conhecido como usuário 0. Esse recurso garante que apps críticos para a segurança, como a câmera de ré, possam continuar o streaming da câmera sem interrupções, independentemente da troca de usuário em primeiro plano. Somente apps assinados pela plataforma e que tenham a nova permissão android.permission.CAMERA_HEADLESS_SYSTEM_USER podem acessar a câmera como usuário 0.

Para apps que acessam câmeras como o usuário 0, os dados da câmera precisam ser consumidos localmente e não podem ser transmitidos para fora do dispositivo, incluindo dados derivados dos dados da câmera. Esses apps exigem que a permissão android.permission.CAMERA seja concedida previamente e precisam obedecer à política de permissão pré-concedida descrita em Design para dirigir para os requisitos do GAS.

Configurar uma lista de permissões de privacidade da câmera

Os fabricantes de equipamentos originais (OEMs) agora podem configurar apps de câmera específicos para serem incluídos em uma lista de permissões que concede acesso à câmera, independentemente do status da chave de privacidade da câmera. Esse recurso permite que os usuários desativem o acesso à câmera para apps de entretenimento, como mídias sociais e videoconferências, ao mesmo tempo em que permitem o acesso à câmera para determinados apps da lista de permissões.

Somente apps privilegiados e do sistema que receberam a permissão android.permission.CAMERA_PRIVACY_ALLOWLIST podem usar esse recurso. Os parceiros do Google Automotive Services (GAS) precisam enviar os apps da lista de permissões para análise e obedecer à política de lista de permissões de privacidade. Para saber mais, consulte Android para carros.

Adicionar um app à lista de permissões

No diretório etc/sysconfig:

  1. Adicione o nome do pacote do app em um arquivo XML de configuração do 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. Adicione o URL da Política de Privacidade do app a AndroidManifest.xml. O nome do meta-data precisa ser privacy_policy.

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

Por padrão, o botão de privacidade da câmera para apps permitidos ou obrigatórios fica oculto na interface das configurações de privacidade. No entanto, os OEMs podem substituir esse comportamento definindo a seguinte flag como TRUE. Isso permite que os OEMs personalizem a visibilidade do botão de privacidade da câmera para os apps necessários com base nas preferências.

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

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

Tenha acesso antecipado à câmera

Apps específicos com foco em segurança e tempo podem acessar a câmera antes que o processo de inicialização do Android seja concluído. No entanto, esse acesso é concedido exclusivamente a clientes privilegiados com o UID AID_AUTOMOTIVE_EVS. Para saber mais sobre como atribuir um UID específico a um app nativo, consulte Controle de acesso discricionário (DAC). Esse acesso antecipado à câmera é limitado às câmeras do sistema posicionadas no exterior da carroceria.