Android Automotive OS (AAOS) 使用标志和配置来实现不同的功能,包括动态路由和更通用的功能标志,例如汽车服务的音量控件。本文介绍了用于音频管理的当前 AAOS 配置标志。
| 举报 | 用途 | |
|---|---|---|
| audioUseDynamicRouting | 在汽车服务配置文件中定义,用于启用 AAOS 路由。
    此配置必须设置为 true。如果设为false、路由和大部分CarAudioService将被停用,并且操作系统回退到配置音频政策中描述的默认行为。 | |
| audioUseCarVolumeGroupMuting | 在汽车服务配置文件中定义,用于启用各个音量组的静音功能。如果设为 false(默认值),系统会停用单个音量组的静音功能。而静音功能会切换主静音设置。
    如果设为true,系统会启用汽车音量组静音功能,并可以单独将每个音量组静音。设置为true时,必须在音频控制 HAL 中实现音量组静音功能。 | |
| audioUseHalDuckingSignals | 在汽车服务配置文件中定义,使 IAudioControl#onDevicesToDuckChangeAPI 能够通知 HAL 何时闪避。设为true(默认值)时,该 API 会收到指示要闪避哪些输出设备以及哪些使用行为持有焦点的信号。如果设为false,系统不会调用该 API。除非音频控制 HAL 实现了闪避功能,否则不会调用该 API。 | |
| config_oemCarService | 在汽车服务配置文件中定义,这是 OEM 自定义服务的组件名称。OEM 可以选择实现此服务,以针对不同的政策自定义汽车服务操作。如果 OEM 选择实现此组件,则必须实现一项服务来扩展由 car-lib 公开的 OemCarService,然后实现所需的组件服务。对于汽车音频服务来说,OEM 可以实现任何音频子服务来管理音频操作。如需了解详情,请参阅车载音频插件服务。
    如果组件名称无效,CarService将不会连接到任何 OEM 服务。组件名称不能是第三方软件包。它必须预安装。 | |
| audioVolumeAdjustmentContextsVersion | 在汽车服务配置文件中定义,此配置可用于选择音量调整上下文优先级列表版本。 版本 1 包含所有音频上下文,顺序如下: 
 版本 2 仅限于下列上下文,顺序如下。 默认版本为  
 | |
| audioPersistMasterMuteState | 在汽车服务配置文件中定义,此配置可用于保留全局静音状态。设为 true(默认值)时,Android 会在启动时恢复全局静音状态。当audioUseCarVolumeGroupMuting为true时,不会影响静音更改的保留,因为静音更改是基于各个音量组。默认值设为true;如果不应为设备保留主静音设置,则必须替换默认值。 | |
| audioVolumeKeyEventTimeoutMs | 在汽车服务配置文件中定义,此配置可用于指示在音量键事件期间发生音量控件更改时,汽车音量组被视为有效的超时时间(以毫秒为单位)。此配置的使用方式如下: 
 默认值为  | |
| audioUseCarVolumeGroupEvent | 在汽车服务配置文件中定义,此配置可用于对音量组启用回调事件。设为 true时,客户端会通过ICarVolumeGroupEvent收到对影响音量组的事件的回调。处于启用状态时:
 默认值为  | |
| config_useFixedVolume | 在 frameworks/base/core/res/res/values/config.xml中定义。必须设置为true,才能允许车载音频服务管理音量控制。如果config_useFixedVolume标志未设置或设为false(默认值),应用可以调用AudioManager音量管理 API,并在软件混音器中按音频流类型更改音量。用户可能不希望出现这种情况,因为这会对其他应用带来潜在影响,而且使用硬件放大器接收信号时,软件混音器中的音量衰减会导致信号中的可用有效位减少。尚未配置并设置为true的新设备会通过AudioManager音量和静音 API 接收音量变化。 | |
| config_handleVolumeKeysInWindowManager | 在 frameworks/base/core/res/res/values/config.xml中定义,必须设置为true,以便汽车音频服务拦截音量键事件。如果设置为false(默认值),音量键事件可转发到前台应用,并且可能会导致汽车音频服务之外的音量键事件管理出现不好的结果。 | |
| audioUseMinMaxActivationVolume | 在汽车服务配置文件中定义,用于启用最低和最高激活音量。如果设为 true,可通过最低和最高激活音量管理来调整音量增益指数。如果设为false(默认值),则最低和最高激活音量不会生效。 | 
汽车音频服务配置
在 Android 13 之前,汽车服务配置由 packages/services/Car/service/res/values/config.xml 文件的产品配置叠加层覆盖(如需了解详情,请参阅利用资源叠加层自定义 build)。
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
配置文件从 <path_to_overlay> 到实际位置的位置应包含 packages/services/Car/service/res/values/。
汽车服务 RRO
从 Android 13 开始,AAOS 支持运行时资源叠加层。可以使用 RRO 更改汽车音频配置的值。例如,请在 device/google/cuttlefish/shared/auto/rro_overlay/ 中查看汽车 cuttlefish RRO 参考文档。audioUseDynamicRouting 配置在 device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml 中被替换。
<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...
资源叠加层地图包含在 device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml 中:
<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>
device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml 中定义的资源叠加层清单包含设置为 com.android.car.updatable 的 targetPackage。
如需了解详情,请参阅以下资源:
启用了功能的 API
如果在设备上启用了相应功能,该方法会返回 true,否则返回 false。在 CarAudioManager#isAudioFeatureEnabled API 中,传入的参数必须是以下其中一项:
- AUDIO_FEATURE_DYNAMIC_ROUTING
- AUDIO_FEATURE_VOLUME_GROUP_MUTING
- AUDIO_FEATURE_OEM_AUDIO_SERVICE
- AUDIO_FEATURE_VOLUME_GROUP_EVENTS
- AUDIO_FEATURE_AUDIO_MIRRORING
