В Android Automotive OS (AAOS) используются флаги и конфигурации для включения различных функций, от динамической маршрутизации до более общих флагов, таких как управление громкостью через автомобильный сервис. Текущие флаги конфигурации AAOS для управления аудио описаны здесь.
Флаг | Цель |
---|---|
audioUseDynamicRouting | В файле конфигурации автомобильного сервиса определено значение « Включить маршрутизацию AAOS» . Необходимо установить значение « true . При значении false » маршрутизация и большая часть CarAudioService отключаются, и ОС возвращается к поведению по умолчанию, описанному в разделе «Настройка политик аудио» . |
useCoreAudioRouting | Определяется в файле конфигурации автомобильной службы для включения управления маршрутизацией звука AAOS . При значении true автомобильная аудиослужба использует определения конфигурации, настроенные с помощью настраиваемого механизма аудиополитик . При значении false управление маршрутизацией возвращается к использованию определения динамического микширования аудиополитик автомобильной аудиослужбы, настроенного с помощью audioUseDynamicRouting . |
useCoreAudioVolume | Определяется в файле конфигурации автомобильного сервиса для включения управления громкостью звука на базе ядра AAOS . При значении true автомобильный сервис использует определения групп громкости, настроенные с помощью настраиваемого механизма политик звука . При значении false управление громкостью возвращается к использованию определения группы громкости автомобильного сервиса по умолчанию, настроенного с помощью audioUseDynamicRouting . |
audioUseCarVolumeGroupMuting | Определяется в файле конфигурации сервиса автомобиля для включения отключения отдельных групп громкости. При значении false (значение по умолчанию) отключение отдельных групп громкости отключено. Вместо этого отключение звука включает общее отключение звука. При значении true включается отключение звука автомобильных групп громкости, и каждая отдельная группа громкости может быть отключена отдельно. При true отключение звука групп громкости должно быть реализовано на уровне HAL управления аудиосистемой . |
audioUseHalDuckingSignals | Определено в файле конфигурации автомобильного сервиса, чтобы API IAudioControl#onDevicesToDuckChange мог сообщать HAL о необходимости приглушения. При true (значение по умолчанию) API получает сигналы, указывающие, какие устройства вывода следует приглушать и какие приложения находятся в фокусе. При false API не вызывается. API не вызывается, если HAL Audio Control не реализует приглушение. |
config_oemCarService | Это имя компонента для службы настройки OEM, указанное в файле конфигурации автомобильного сервиса. OEM-производители могут реализовать этот сервис для настройки действий автомобильного сервиса в соответствии с различными политиками. Если OEM-производители решат реализовать этот компонент, они должны реализовать сервис для расширения OemCarService предоставляемого car-lib, а затем реализовать необходимые службы компонентов. В частности, для службы автомобильной аудиосистемы 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 (значение по умолчанию), приложения могут вызывать API управления громкостью AudioManager и изменять громкость в зависимости от типа потока в программном микшере. Это может быть нежелательно из-за потенциального влияния на другие приложения и того факта, что ослабление громкости в программном микшере может привести к уменьшению количества значимых битов в сигнале при приеме на аппаратный усилитель. Новые устройства, не настроенные и установленные в true получают изменения громкости через API управления громкостью и отключения звука AudioManager . |
config_handleVolumeKeysInWindowManager | Определено в frameworks/base/core/res/res/values/config.xml и должно быть установлено true , чтобы разрешить службе автомобильной аудиосистемы перехватывать события нажатия клавиш громкости. Если установлено значение false (значение по умолчанию), события нажатия клавиш громкости могут быть перенаправлены в активное приложение, что может привести к негативным последствиям при управлении событиями нажатия клавиш громкости вне службы автомобильной аудиосистемы. |
audioUseMinMaxActivationVolume | В файле конфигурации автосервиса определено включение минимальной и максимальной громкости активации . При true индекс усиления громкости может быть скорректирован благодаря управлению минимальной и максимальной громкостью активации. При значении false (значение по умолчанию) минимальная и максимальная громкость активации не действуют. |
audioUseFadeManagerConfiguration | Определяется в файле конфигурации автомобильного сервиса для включения системного поведения при потере фокуса звука . При true фреймворк автомобильной аудиосистемы анализирует определения конфигурации затухания звука и применяет соответствующий FadeManagerConfiguration при диспетчеризации потери фокуса звука. При значении false (значение по умолчанию) система не применяет принудительное поведение при потере фокуса звука приложением. |
Конфигурации сервиса автоаудио
До Android 13 конфигурации автомобильных сервисов перезаписывались наложением конфигурации продукта (для получения дополнительной информации см. раздел Настройка сборки с помощью наложений ресурсов ) для файла 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 поддерживает оверлеи ресурсов среды выполнения (Runtime resource overlays) . Используйте RRO для изменения значения конфигурации автомобильной аудиосистемы. Например, см. RRO для справочника по автомобильной cuttlefish
в device/google/cuttlefish/shared/auto/rro_overlay/
. Конфигурация 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
содержит targetPackage
установленный как com.android.car.updatable
.
Более подробную информацию можно найти в следующих ресурсах:
- Наложения ресурсов времени выполнения
- Устранение неполадок с наложениями ресурсов во время выполнения
API с поддержкой функций
Метод возвращает true
если функция включена на устройстве, в противном случае false
. В API CarAudioManager#isAudioFeatureEnabled
передаваемый параметр должен быть одним из следующих:
-
AUDIO_FEATURE_DYNAMIC_ROUTING
-
AUDIO_FEATURE_VOLUME_GROUP_MUTING
-
AUDIO_FEATURE_OEM_AUDIO_SERVICE
-
AUDIO_FEATURE_VOLUME_GROUP_EVENTS
-
AUDIO_FEATURE_AUDIO_MIRRORING