Android Camera Service 包含汽车设备以及其他外形规格(例如手机、平板电脑和电视)中使用的相机堆栈。要查看整体相机架构,请参阅相机。本页重点介绍汽车设备特有的主题,以及如何使用 Android Camera API。
启用 Android Camera Service
要在汽车平台上启用 Android Camera Service,产品的 Makefile 必须将 ENABLE_CAMERA_SERVICE
指定为 true
。
汽车专用相机特性
在汽车设备的上下文中,相机 HAL 必须包含汽车外形规格特有的两个独特特性
名称 | 说明 |
---|---|
android.automotive.location |
指定相机相对于车身框架的定位。 |
android.automotive.lens.facing |
指示相机镜头相对于车身框架和乘客座椅的朝向。 |
在相机未与特定位置或镜头方向精确对齐的情况下(通过 android.automotive.location
或 android.automotive.lens.facing
特性中存在 *_OTHER
指示),或者当多个相机共享相同的位置和方向时,相机 HAL 应提供其他特性,以使应用能够准确确定相机的位置。这些特性包括
授予 Headless System User 访问权限
某些系统应用和第一方 (1P) 应用可以作为 Headless System User(也称为 User 0)访问相机。此功能可确保安全关键型应用(例如后视摄像头)可以持续进行相机串流,而不会因前台用户切换而中断。只有平台签名且持有新权限 android.permission.CAMERA_HEADLESS_SYSTEM_USER
的应用才能作为 User 0 访问相机。
对于作为 User 0 访问相机的应用,相机数据必须在本地使用,并且不得传输到设备外部,包括从相机数据导出的任何数据。这些应用需要预先授予 android.permission.CAMERA
权限,并且必须遵守 Design for Driving 中针对 GAS 要求概述的预先授予权限政策。
配置相机隐私许可名单
原始设备制造商 (OEM) 现在可以配置特定的相机应用以包含在许可名单中,该许可名单授予相机访问权限,而与相机隐私开关的状态无关。此功能使用户可以禁用社交媒体和视频会议等娱乐应用的相机访问权限,同时允许某些许可名单中的应用访问相机。
只有被授予 android.permission.CAMERA_PRIVACY_ALLOWLIST
权限的系统应用和特权应用才能使用此功能。Google 汽车服务 (GAS) 合作伙伴必须提交其许可名单中的应用以供审核,并遵守隐私许可名单政策。要了解详情,请参阅Android for Cars。
将应用添加到许可名单
在 etc/sysconfig
目录中
在系统配置 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>
将应用的隐私权政策披露网址添加到
AndroidManifest.xml
。meta-data
的名称应为privacy_policy
。<meta-data android:name="privacy_policy" android:value= privacy policy URL/>
默认情况下,许可名单中的应用或必需应用的相机隐私开关在隐私设置 UI 中处于隐藏状态。但是,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)。对相机的这种早期访问权限仅限于位于车身外部的系统相机。