Используйте службу камеры Android

Служба камеры Android включает в себя стек камер, используемый в автомобильных устройствах, а также в других форм-факторах, таких как мобильные телефоны, планшеты и телевизоры. Чтобы просмотреть общую архитектуру камеры, см. Камера . На этой странице рассматриваются темы, относящиеся к автомобильным устройствам и работе с Android Camera API .

Включить службу камеры Android

Чтобы включить службу камеры Android на автомобильной платформе, в make-файле продукта необходимо указать ENABLE_CAMERA_SERVICE как true .

Характеристики камеры, специфичные для автомобилей

В контексте автомобильных устройств камера HAL должна включать в себя две отличительные характеристики, характерные для автомобильного форм-фактора:

Имя Описание
android.automotive.location Определяет расположение камер относительно корпуса автомобиля.
android.automotive.lens.facing Указывает, в каком направлении направлен объектив камеры относительно рамы кузова автомобиля и пассажирских сидений.

В ситуациях, когда камеры неточно совмещены с определенным местоположением или ориентацией объектива (на это указывает наличие *_OTHER в характеристиках android.automotive.location или android.automotive.lens.facing ), или когда несколько камер находятся в одном и том же месте и направлении HAL камеры должен предоставлять дополнительные характеристики, позволяющие приложениям точно определять местоположение камеры. Эти характеристики включают в себя:

Предоставить доступ пользователю безголовой системы

Определенные системные и сторонние (1P) приложения могут получать доступ к камере как пользователь безголовой системы, также известный как пользователь 0. Эта функция гарантирует, что критически важные для безопасности приложения, такие как камера заднего вида, могут продолжать потоковую передачу с камеры без перерыва. независимо от переключения пользователей на переднем плане. Только приложения, подписанные платформой и обладающие новым разрешением android.permission.CAMERA_HEADLESS_SYSTEM_USER , могут получить доступ к камере от имени пользователя 0.

Для приложений, получающих доступ к камерам от имени пользователя 0, данные камеры ДОЛЖНЫ использоваться локально и НЕ ДОЛЖНЫ передаваться с устройства, включая любые данные, полученные из данных камеры. Этим приложениям требуется предварительное предоставление разрешения android.permission.CAMERA , и они должны соответствовать политике предварительного предоставления разрешений, изложенной в требованиях Design for Driving for GAS.

Настройка белого списка конфиденциальности камеры

Производители оригинального оборудования (OEM) теперь могут настраивать определенные приложения камеры для включения в белый список, который предоставляет доступ к камере независимо от состояния переключателя конфиденциальности камеры. Эта функция позволяет пользователям отключать доступ к камере для развлекательных приложений, таких как социальные сети и видеоконференции, одновременно разрешая доступ к камере для определенных приложений из разрешенного списка.

Эту функцию могут использовать только системные и привилегированные приложения, которым предоставлено разрешение android.permission.CAMERA_PRIVACY_ALLOWLIST . Партнеры Google Automotive Services (GAS) должны отправить свои приложения из белого списка на проверку и соблюдать политику конфиденциальности белого списка. Дополнительную информацию см. в разделе Android для автомобилей .

Добавить приложение в белый список

В каталоге etc/sysconfig :

  1. Добавьте имя пакета приложения в XML-файл конфигурации системы:

    <!-- 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. Добавьте URL-адрес приложения для раскрытия политики конфиденциальности в AndroidManifest.xml . Имя meta-data должно быть privacy_policy .

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

По умолчанию переключатель конфиденциальности камеры для приложений из разрешенного списка или обязательных приложений скрыт в пользовательском интерфейсе настроек конфиденциальности . Однако OEM-производители могут изменить это поведение, установив для следующего флага значение TRUE . Это позволяет OEM-производителям настраивать видимость переключателя конфиденциальности камеры для необходимых приложений в соответствии со своими предпочтениями.

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

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

Получите ранний доступ к камере

Определенные приложения, чувствительные ко времени и ориентированные на безопасность, могут получить доступ к камере до завершения процесса загрузки Android. Однако этот доступ предоставляется исключительно привилегированным клиентам с UID AID_AUTOMOTIVE_EVS . Дополнительные сведения о назначении определенного UID собственному приложению см. в разделе Дискреционный контроль доступа (DAC) . Такой ранний доступ к камере ограничен системными камерами, расположенными снаружи кузова автомобиля.