Android Automotive OS (AAOS) 使用标志和配置来启用不同的功能,从动态路由开始,到更通用的功能标志,例如车载服务的音量控制。此处介绍了当前的 AAOS 音频管理配置标志。
标志 | 用途 | |
---|---|---|
audioUseDynamicRouting |
在车载服务配置文件中定义,用于启用 AAOS 路由。配置必须设置为 true 。当 false 时,路由和大部分 CarAudioService 会被停用,操作系统会回退到配置音频政策中所述的默认行为。 |
|
audioUseCarVolumeGroupMuting
| 在车载服务配置文件中定义,用于启用单个音量组的静音。当设置为 false (默认值)时,单个音量组的静音会被停用。相反,静音会切换主静音。当设置为 true 时,车载音量组静音会被启用,并且可以单独静音每个音量组。当 true 时,必须在 音频控制 HAL 中实现音量组静音。 | |
audioUseHalDuckingSignals |
在车载服务配置文件中定义,用于启用 IAudioControl#onDevicesToDuckChange API,以便在需要衰减时通知 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 之前,车载服务配置会被产品配置叠加层覆盖(如需了解详情,请参阅使用资源叠加自定义 build),适用于 packages/services/Car/service/res/values/config.xml
文件。
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