Marcas de AAOS de configuración de audio

El SO Android Automotive (AAOS) usa marcas y configuraciones para habilitar diferentes funciones, desde el enrutamiento dinámico hasta marcas de funciones más genéricas, como el control de volumen desde el servicio del automóvil. Aquí se describen las marcas de configuración actuales de AAOS para la administración de audio.

Marca Propósito
audioUseDynamicRouting Se define en el archivo de configuración del servicio de automóvil para habilitar el enrutamiento de AAOS. La configuración debe establecerse en true. Cuando false, el enrutamiento y gran parte de CarAudioService están inhabilitados, y el SO recurre al comportamiento predeterminado que se describe en Cómo configurar políticas de audio.
useCoreAudioRouting Se define en el archivo de configuración del servicio para automóviles para habilitar la administración del enrutamiento de audio principal de AAOS. Cuando el valor se establece en true, el servicio de audio del automóvil usa las definiciones de configuración establecidas con el motor de políticas de audio configurable. Si el valor se establece en false, la administración de enrutamiento recurre a la definición de combinación de políticas de audio dinámicas del servicio de audio del automóvil, según se configuró con audioUseDynamicRouting.
useCoreAudioVolume Se define en el archivo de configuración del servicio para automóviles para habilitar la administración del volumen de audio principal de AAOS. Cuando el valor se establece en true, el servicio de audio del automóvil usa las definiciones de grupos de volumen configuradas con el motor de políticas de audio configurable. Si el valor se establece en false, la administración de volumen recurre a la definición predeterminada del grupo de volumen del servicio de audio del automóvil, según se configuró con audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Se define en el archivo de configuración del servicio del automóvil para habilitar el silenciamiento de grupos de volumen individuales. Cuando se establece en false (el valor predeterminado), se inhabilita el silenciamiento de grupos de volumen individuales. En su lugar, el botón de silencio activa o desactiva el silencio general. Cuando se configura en true, se habilita el silencio del grupo de volumen del automóvil y cada grupo de volumen individual se puede silenciar por separado. Cuando true, la desactivación del volumen del grupo de volúmenes se debe implementar en el HAL de control de audio.
audioUseHalDuckingSignals Se define en el archivo de configuración del servicio de automóvil para habilitar la API de IAudioControl#onDevicesToDuckChange y que informe al HAL cuándo debe reducir el volumen. Cuando es true (valor predeterminado), la API recibe indicadores que señalan qué dispositivos de salida se deben atenuar y qué usos mantienen el enfoque. Cuando es false, no se llama a la API. No se llama a la API, a menos que el HAL de Audio Control implemente la reducción de audio.
config_oemCarService Definido en el archivo de configuración del servicio para automóviles, este es el nombre del componente del servicio de personalización del OEM. Los OEM pueden optar por implementar este servicio para personalizar las acciones de servicio del automóvil según diferentes políticas. Si los OEM optan por implementar este componente, deben implementar un servicio para extender OemCarService expuesto por car-lib y, luego, implementar los servicios de componentes requeridos. En el caso específico del servicio de audio para automóviles, los OEM pueden implementar cualquiera de los subservicios de audio para administrar la acción de audio. Para obtener más detalles, consulta Car Audio Plugin Service. Si el nombre del componente no es válido, CarService no se conectará a ningún servicio del OEM. El nombre del componente no puede ser un paquete de terceros. Debe estar preinstalada.
audioVolumeAdjustmentContextsVersion

Se define en el archivo de configuración del servicio para automóviles. Es la configuración para seleccionar la versión de la lista de prioridad del contexto de ajuste de volumen.

La versión 1 incluye todos los contextos de audio, en este orden:

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

La versión 2 se limita a los siguientes contextos, en este orden.

La versión predeterminada es 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Se define en el archivo de configuración del servicio del automóvil. Es la configuración para conservar el estado de silencio global. Cuando true (el valor predeterminado), Android restablece el estado de silencio global durante el arranque. Cuando audioUseCarVolumeGroupMuting es true, esto no tiene ningún impacto en la persistencia de los cambios de silencio, ya que estos se basan en grupos de volumen individuales. El valor predeterminado se establece en true y se debe reemplazar cuando el silencio general no se deba conservar para un dispositivo.
audioVolumeKeyEventTimeoutMs

Se define en el archivo de configuración del servicio para automóviles. Es la configuración que indica el tiempo de espera en milisegundos durante el que se considera activo un grupo de volumen del automóvil para los cambios en el control de volumen durante los eventos de teclas de volumen. La configuración se usa de la siguiente manera:

  • El tiempo de espera se usa para determinar si una reproducción (volumen de audio asociado con el uso de audio de la reproducción) aún se puede considerar para la selección automática del volumen después de que se detuvo la reproducción.
  • El tiempo de espera también se usa como la duración de la pausa requerida entre los ajustes de volumen automáticos para cambiar lo que el usuario está ajustando.

El valor predeterminado es de 3000 milisegundos y los OEM deben ajustarlo para adaptar la experiencia del usuario.

audioUseCarVolumeGroupEvent Se define en el archivo de configuración del servicio para automóviles. Es la configuración que permite que se envíen eventos de devolución de llamada a los grupos de volúmenes. Cuando se llama a true, los clientes reciben una devolución de llamada a través de ICarVolumeGroupEvent para los eventos que afectan a los grupos de volumen. Cuando la función esté habilitada, ocurrirá lo siguiente:
  • Te recomendamos que los proveedores también admitan IAudioControl#setModuleChangeCallback y IAudioControl#registerGainCallback para los eventos y los cambios en el hardware de audio.
  • Cuando la misma app registra CarVolumeCallback y CarVolumeGroupEventCallback, las devoluciones de llamada del índice del grupo de volúmenes y del silencio del grupo de volúmenes pasarán solo por CarVolumeGroupEventCallback. Por lo tanto, te recomendamos que todas las apps migren a la nueva interfaz de devolución de llamada para garantizar un rendimiento coherente.
  • El valor predeterminado es false. Te recomendamos que establezcas este valor en true, ya que las APIs para admitir devoluciones de llamada de volumen heredadas están obsoletas y pronto se quitarán por completo.

config_useFixedVolume Se define en frameworks/base/core/res/res/values/config.xml. Debe establecerse en true para permitir que el servicio de audio del automóvil administre el control de volumen. Cuando no se establece la marca config_useFixedVolume o se establece en false (el valor predeterminado), las apps pueden llamar a las APIs de administración de volumen AudioManager y cambiar el volumen por tipo de transmisión en el mezclador de software. Esto puede ser indeseable debido al posible efecto en otras apps y al hecho de que la atenuación del volumen en el mezclador de software puede generar menos bits significativos disponibles en la señal cuando se recibe en el amplificador de hardware. Dispositivos nuevos que no se configuraron y que están configurados para true recibir cambios de volumen a través de las APIs de AudioManager volumen y silencio.
config_handleVolumeKeysInWindowManager Se define en frameworks/base/core/res/res/values/config.xml y se debe establecer en true para permitir que el servicio de audio del auto intercepte eventos de teclas de volumen. Si se configura como false (el valor predeterminado), los eventos de teclas de volumen se pueden reenviar a la app en primer plano y pueden generar resultados adversos a partir de la administración de eventos de teclas de volumen fuera del servicio de audio del automóvil.
audioUseMinMaxActivationVolume Se define en el archivo de configuración del servicio de automóvil para habilitar el volumen de activación mínimo y máximo. Cuando es true, el índice de ganancia de volumen se puede ajustar debido a la administración del volumen de activación mínimo y máximo. Cuando es false (valor predeterminado), no se aplica el volumen de activación mínimo ni máximo.
audioUseFadeManagerConfiguration Se define en el archivo de configuración del servicio para automóviles para habilitar el comportamiento de pérdida de enfoque de audio aplicado por el sistema. Cuando true, el marco de trabajo de audio del auto analiza las definiciones de configuración de fundido de audio del auto y aplica el FadeManagerConfiguration respectivo cuando se envía la pérdida de foco de audio. Cuando es false (valor predeterminado), el sistema no aplica el comportamiento de fundido cuando una app pierde el enfoque de audio.

Parámetros de configuración del servicio de audio del auto

Antes de Android 13, las configuraciones de servicios para automóviles se reemplazaban con una superposición de configuración del producto (para obtener más información, consulta Cómo personalizar la compilación con superposiciones de recursos) para el archivo packages/services/Car/service/res/values/config.xml.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

La ubicación del archivo de configuración desde <path_to_overlay> hasta la ubicación real debe incluir packages/services/Car/service/res/values/.

RRO de servicio de automóviles

Desde Android 13, AAOS admite las superposiciones de recursos en tiempo de ejecución. Usa un RRO para cambiar el valor de la configuración de audio del automóvil. Por ejemplo, consulta los RR. OO. de la referencia cuttlefish para automóviles en device/google/cuttlefish/shared/auto/rro_overlay/. El parámetro de configuración audioUseDynamicRouting se anula en device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

El mapa de superposición de recursos se encuentra en device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

El manifiesto de superposición de recursos definido en device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contiene el targetPackage establecido como com.android.car.updatable.

Consulta estos recursos para obtener más información:

API habilitada para funciones

El método devuelve true si la función está habilitada en el dispositivo; de lo contrario, devuelve false. En la API de CarAudioManager#isAudioFeatureEnabled, el parámetro que se pasa debe ser uno de los siguientes:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING