Флаги AAOS конфигурации аудио

Android Automotive OS (AAOS) использует флаги и конфигурации для включения различных функций, начиная с динамической маршрутизации и заканчивая более общими флагами функций, такими как управление громкостью из сервиса автомобиля. Текущие флаги конфигурации AAOS для управления аудио описаны здесь.

Флаг Цель
audioUseDynamicRouting Определено в файле конфигурации сервиса автомобиля для включения маршрутизации AAOS . Конфигурация должна быть установлена ​​в true . Если false , маршрутизация и большая часть CarAudioService отключаются, и ОС возвращается к поведению по умолчанию, описанному в разделе Настройка политик звука .
useCoreAudioRouting Определено в файле конфигурации службы автомобиля для включения управления маршрутизацией звука ядра AAOS . Если установлено значение true , служба автомобильного аудио использует настройку определений конфигурации с настраиваемым механизмом политики звука . Если установлено значение false , управление маршрутизацией возвращается к использованию определения микширования динамической политики звука службы автомобильного аудио, настроенного с помощью audioUseDynamicRouting .
useCoreAudioVolume Определено в файле конфигурации службы автомобиля для включения управления громкостью звука ядра AAOS . Если установлено значение true , служба автомобильного аудио использует настройку определений групп громкости с настраиваемым механизмом политики звука . Если установлено значение false , управление громкостью возвращается к использованию определения группы громкости службы автомобильного аудио по умолчанию, настроенного с помощью audioUseDynamicRouting .
audioUseCarVolumeGroupMuting Определено в файле конфигурации сервиса автомобиля для включения отключения звука отдельных групп громкости. Если установлено значение false (значение по умолчанию), отключение звука отдельных групп громкости отключено. Вместо этого отключение звука переключает общее отключение звука. Если установлено значение true , отключение звука группы громкости автомобиля включено, и каждая отдельная группа громкости может быть отключена отдельно. Если true , отключение звука группы громкости должно быть реализовано на уровне Audio Control HAL .
audioUseHalDuckingSignals Определено в файле конфигурации сервиса автомобиля, чтобы включить API IAudioControl#onDevicesToDuckChange для информирования HAL о необходимости приглушения. Если true (значение по умолчанию), API получает сигналы, указывающие, какие выходные устройства следует пригнуть и какие использования удерживают фокус. Если false , API не вызывается. API не вызывается, если Audio Control HAL не реализует приглушение.
config_oemCarService Определено в файле конфигурации сервиса автомобиля, это имя компонента для сервиса настройки OEM. OEM-производители могут выбрать реализацию этого сервиса для настройки действий сервиса автомобиля для различных политик. Если OEM-производители решат реализовать этот компонент, они должны реализовать сервис для расширения OemCarService предоставляемого car-lib, а затем реализовать требуемые сервисы компонентов. Для сервиса автомобильного аудио, в частности, OEM-производители могут реализовать любой из подсервисов аудио для управления аудиодействием. Подробности см. в разделе Car Audio Plugin Service . Если имя компонента недействительно, CarService не будет подключаться ни к одному сервису OEM. Имя компонента не может быть сторонним пакетом. Он должен быть предварительно установлен.
audioVolumeAdjustmentContextsVersion

Определено в файле конфигурации автосервиса, конфигурация для выбора версии списка приоритетов контекста регулировки громкости.

Версия 1 включает все аудиоконтексты в следующем порядке:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

Версия 2 ограничена следующими контекстами (в указанном порядке).

Версия по умолчанию — 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Определено в файле конфигурации сервиса автомобиля, конфигурация для сохранения глобального состояния отключения звука. Если true (значение по умолчанию), Android восстанавливает глобальное состояние отключения звука при загрузке. Если audioUseCarVolumeGroupMuting равно true , это не влияет на сохранение изменений отключения звука, поскольку изменения отключения звука основаны на отдельных группах громкости. Значение по умолчанию установлено на true и должно быть перезаписано, когда главное отключение звука не должно сохраняться для устройства.
audioVolumeKeyEventTimeoutMs

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

  • Тайм-аут используется для определения того, может ли воспроизведение (громкость звука, связанная с использованием звука при воспроизведении) по-прежнему рассматриваться для автоматического выбора громкости после его остановки.
  • Тайм-аут также используется как продолжительность паузы, необходимая между автоматическими регулировками громкости для изменения того, что настраивает пользователь.

Значение по умолчанию составляет 3000 миллисекунд и должно быть скорректировано OEM-производителями для адаптации к пользовательскому опыту.

audioUseCarVolumeGroupEvent Определено в файле конфигурации сервиса автомобиля, конфигурация для включения событий обратного вызова для групп томов. Если true , клиенты получают обратный вызов через ICarVolumeGroupEvent для событий, которые влияют на группы томов. Если включено:
  • Мы настоятельно рекомендуем поставщикам также поддерживать IAudioControl#setModuleChangeCallback и IAudioControl#registerGainCallback для событий и изменений аудиооборудования.
  • Когда CarVolumeCallback и CarVolumeGroupEventCallback зарегистрированы одним и тем же приложением, обратные вызовы индекса группы томов и отключения звука группы томов будут проходить только через CarVolumeGroupEventCallback . Поэтому мы настоятельно рекомендуем всем приложениям перейти на новый интерфейс обратного вызова, чтобы обеспечить стабильную производительность.
  • Значение по умолчанию — false . Мы рекомендуем вам установить значение true , поскольку API для поддержки устаревших обратных вызовов тома устарели и вскоре будут полностью удалены.

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
,

Android Automotive OS (AAOS) использует флаги и конфигурации для включения различных функций, начиная с динамической маршрутизации и заканчивая более общими флагами функций, такими как управление громкостью из сервиса автомобиля. Текущие флаги конфигурации AAOS для управления аудио описаны здесь.

Флаг Цель
audioUseDynamicRouting Определено в файле конфигурации сервиса автомобиля для включения маршрутизации AAOS . Конфигурация должна быть установлена ​​в true . Если false , маршрутизация и большая часть CarAudioService отключаются, и ОС возвращается к поведению по умолчанию, описанному в разделе Настройка политик звука .
useCoreAudioRouting Определено в файле конфигурации службы автомобиля для включения управления маршрутизацией звука ядра AAOS . Если установлено значение true , служба автомобильного аудио использует настройку определений конфигурации с настраиваемым механизмом политики звука . Если установлено значение false , управление маршрутизацией возвращается к использованию определения микширования динамической политики звука службы автомобильного аудио, настроенного с помощью audioUseDynamicRouting .
useCoreAudioVolume Определено в файле конфигурации службы автомобиля для включения управления громкостью звука ядра AAOS . Если установлено значение true , служба автомобильного аудио использует настройку определений групп громкости с настраиваемым механизмом политики звука . Если установлено значение false , управление громкостью возвращается к использованию определения группы громкости службы автомобильного аудио по умолчанию, настроенного с помощью audioUseDynamicRouting .
audioUseCarVolumeGroupMuting Определено в файле конфигурации сервиса автомобиля для включения отключения звука отдельных групп громкости. Если установлено значение false (значение по умолчанию), отключение звука отдельных групп громкости отключено. Вместо этого отключение звука переключает общее отключение звука. Если установлено значение true , отключение звука группы громкости автомобиля включено, и каждая отдельная группа громкости может быть отключена отдельно. Если true , отключение звука группы громкости должно быть реализовано на уровне Audio Control HAL .
audioUseHalDuckingSignals Определено в файле конфигурации сервиса автомобиля, чтобы включить API IAudioControl#onDevicesToDuckChange для информирования HAL о необходимости приглушения. Если true (значение по умолчанию), API получает сигналы, указывающие, какие выходные устройства следует пригнуть и какие использования удерживают фокус. Если false , API не вызывается. API не вызывается, если Audio Control HAL не реализует приглушение.
config_oemCarService Определено в файле конфигурации сервиса автомобиля, это имя компонента для сервиса настройки OEM. OEM-производители могут выбрать реализацию этого сервиса для настройки действий сервиса автомобиля для различных политик. Если OEM-производители решат реализовать этот компонент, они должны реализовать сервис для расширения OemCarService предоставляемого car-lib, а затем реализовать требуемые сервисы компонентов. Для сервиса автомобильного аудио, в частности, OEM-производители могут реализовать любой из подсервисов аудио для управления аудиодействием. Подробности см. в разделе Car Audio Plugin Service . Если имя компонента недействительно, CarService не будет подключаться ни к одному сервису OEM. Имя компонента не может быть сторонним пакетом. Он должен быть предварительно установлен.
audioVolumeAdjustmentContextsVersion

Определено в файле конфигурации автосервиса, конфигурация для выбора версии списка приоритетов контекста регулировки громкости.

Версия 1 включает все аудиоконтексты в следующем порядке:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

Версия 2 ограничена следующими контекстами (в указанном порядке).

Версия по умолчанию — 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Определено в файле конфигурации сервиса автомобиля, конфигурация для сохранения глобального состояния отключения звука. Если true (значение по умолчанию), Android восстанавливает глобальное состояние отключения звука при загрузке. Если audioUseCarVolumeGroupMuting равно true , это не влияет на сохранение изменений отключения звука, поскольку изменения отключения звука основаны на отдельных группах громкости. Значение по умолчанию установлено на true и должно быть перезаписано, когда главное отключение звука не должно сохраняться для устройства.
audioVolumeKeyEventTimeoutMs

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

  • Тайм-аут используется для определения того, может ли воспроизведение (громкость звука, связанная с использованием звука при воспроизведении) по-прежнему рассматриваться для автоматического выбора громкости после его остановки.
  • Тайм-аут также используется как продолжительность паузы, необходимая между автоматическими регулировками громкости для изменения того, что настраивает пользователь.

Значение по умолчанию составляет 3000 миллисекунд и должно быть скорректировано OEM-производителями для адаптации к пользовательскому опыту.

audioUseCarVolumeGroupEvent Определено в файле конфигурации сервиса автомобиля, конфигурация для включения событий обратного вызова для групп томов. Если true , клиенты получают обратный вызов через ICarVolumeGroupEvent для событий, которые влияют на группы томов. Если включено:
  • Мы настоятельно рекомендуем поставщикам также поддерживать IAudioControl#setModuleChangeCallback и IAudioControl#registerGainCallback для событий и изменений аудиооборудования.
  • Когда CarVolumeCallback и CarVolumeGroupEventCallback зарегистрированы одним и тем же приложением, обратные вызовы индекса группы томов и отключения звука группы томов будут проходить только через CarVolumeGroupEventCallback . Поэтому мы настоятельно рекомендуем всем приложениям перейти на новый интерфейс обратного вызова, чтобы обеспечить стабильную производительность.
  • Значение по умолчанию — false . Мы рекомендуем вам установить значение true , поскольку API для поддержки устаревших обратных вызовов тома устарели и вскоре будут полностью удалены.

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