Banderas AAOS de configuración de audio,Banderas AAOS de configuración de audio

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

Bandera Objetivo
audioUseDynamicRouting Definido en el archivo de configuración del servicio de automóvil para habilitar el enrutamiento AAOS . La configuración debe establecerse en true . Cuando es false , el enrutamiento y gran parte de CarAudioService se desactivan y el sistema operativo vuelve al comportamiento predeterminado descrito en Configuración de políticas de audio .
audioUseCarVolumeGroupMuting Definido en el archivo de configuración del servicio de automóvil para permitir el silenciamiento de grupos de volúmenes individuales. Cuando se establece en false (el valor predeterminado), se desactiva el silenciamiento de grupos de volúmenes individuales. En cambio, silenciar alterna el silencio maestro. Cuando se establece en true , se habilita el silenciamiento del grupo de volumen del automóvil y cada grupo de volumen individual se puede silenciar por separado. Cuando es true , el silenciamiento del grupo de volumen debe implementarse en el control de audio HAL .
audioUseHalDuckingSignals Definido en el archivo de configuración del servicio de automóvil para habilitar la API IAudioControl#onDevicesToDuckChange para informar a HAL cuándo agacharse. Cuando true (valor predeterminado), la API recibe señales que indican qué dispositivos de salida evitar y qué usos mantienen el foco. Cuando false , no se llama a la API. No se llama a la API a menos que Audio Control HAL implemente reducción.
config_oemCarService Definido en el archivo de configuración del servicio de automóvil, este es el nombre del componente para el servicio de personalización OEM. Los OEM pueden optar por implementar este servicio para personalizar las acciones de servicio del automóvil para diferentes políticas. Si los OEM optan por implementar este componente, deben implementar un servicio para ampliar OemCarService expuesto por car-lib y luego implementar los servicios de componentes requeridos. Específicamente para el 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 información, consulte Servicio de complementos de audio para el automóvil . Si el nombre del componente no es válido, CarService no se conectará a ningún servicio OEM. El nombre del componente no puede ser un paquete de terceros. Debe estar preinstalado.
audioVolumeAdjustmentContextsVersion

Definido en el archivo de configuración del servicio de automóvil, configuración para seleccionar la versión de la lista de prioridades 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 está limitada a los siguientes contextos, en este orden.

La versión predeterminada es 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Definido en el archivo de configuración del servicio de automóvil, configuración para persistir en el estado de silencio global. Cuando true (el valor predeterminado), Android restaura el estado de silencio global al arrancar. Cuando audioUseCarVolumeGroupMuting es true , esto no tiene ningún impacto en los cambios de silencio persistentes, ya que los cambios de silencio se basan en grupos de volúmenes individuales. El valor predeterminado se establece en true y se debe sobrescribir cuando el silencio maestro no se debe conservar para un dispositivo.
audioVolumeKeyEventTimeoutMs

Definido en el archivo de configuración del servicio de automóvil, configuración para indicar el tiempo de espera en milisegundos mientras un grupo de volumen de automóvil se considera activo para cambios de control de volumen durante eventos de tecla de volumen. La configuración se utiliza de la siguiente manera:

  • El tiempo de espera se utiliza 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 de volumen después de que haya dejado de reproducirse.
  • El tiempo de espera también se utiliza como la duración de la pausa requerida entre los ajustes automáticos de volumen para cambiar lo que el usuario está ajustando.

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

audioUseCarVolumeGroupEvent Definido en el archivo de configuración del servicio de automóvil, configuración para habilitar eventos de devolución de llamada a grupos de volúmenes. Cuando es true , los clientes reciben una devolución de llamada a través de ICarVolumeGroupEvent a eventos que afectan a los grupos de volúmenes. Cuando está habilitado:

  • Recomendamos encarecidamente que los proveedores también admitan IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback para eventos y cambios en el hardware de audio.
  • Cuando CarVolumeCallback y CarVolumeGroupEventCallback están registrados por la misma aplicación, el índice del grupo de volumen y las devoluciones de llamada de silencio del grupo de volumen pasarán únicamente por CarVolumeGroupEventCallback . Por lo tanto, recomendamos encarecidamente que todas las aplicaciones migren a la nueva interfaz de devolución de llamada para garantizar un rendimiento constante.
  • El valor predeterminado es false . Le recomendamos que establezca esto en true porque las API para admitir devoluciones de llamadas de volumen heredadas están en desuso y pronto se eliminarán por completo.

config_useFixedVolume Definido 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 el indicador config_useFixedVolume no está configurado o está configurado en false (el valor predeterminado), las aplicaciones pueden llamar a las API de administración de volumen AudioManager y cambiar el volumen por tipo de transmisión en el mezclador de software. Esto puede no ser deseable debido al efecto potencial en otras aplicaciones y al hecho de que la atenuación del volumen en el mezclador de software puede resultar en menos bits significativos disponibles en la señal cuando se recibe en el amplificador de hardware. Los dispositivos nuevos que no se han configurado y que están configurados en true reciben cambios de volumen a través de las API de volumen y silencio AudioManager .
config_handleVolumeKeysInWindowManager Definido en frameworks/base/core/res/res/values/config.xml , debe establecerse en true para permitir que el servicio de audio del automóvil intercepte eventos de clave de volumen. Si se configura en false (el valor predeterminado), los eventos de la tecla de volumen se pueden reenviar a la aplicación de primer plano y pueden provocar resultados adversos en la gestión de eventos de la tecla de volumen fuera del servicio de audio del automóvil.

Configuraciones del servicio de audio del automóvil

Antes de Android 13, las configuraciones de los servicios de automóviles se sobrescribían con una superposición de configuración del producto (para obtener más información, consulte Personalización de 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 superposiciones de recursos en tiempo de ejecución . Utilice un RRO para cambiar el valor de la configuración de audio del automóvil. Por ejemplo, consulte los RRO para la referencia cuttlefish automotriz en device/google/cuttlefish/shared/auto/rro_overlay/ . La 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 está contenido 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 configurado como com.android.car.updatable .

Consulte 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, es false . En la API CarAudioManager#isAudioFeatureEnabled , el parámetro pasado debe ser uno de:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING
,

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

Bandera Objetivo
audioUseDynamicRouting Definido en el archivo de configuración del servicio de automóvil para habilitar el enrutamiento AAOS . La configuración debe establecerse en true . Cuando es false , el enrutamiento y gran parte de CarAudioService se desactivan y el sistema operativo vuelve al comportamiento predeterminado descrito en Configuración de políticas de audio .
audioUseCarVolumeGroupMuting Definido en el archivo de configuración del servicio de automóvil para permitir el silenciamiento de grupos de volúmenes individuales. Cuando se establece en false (el valor predeterminado), se desactiva el silenciamiento de grupos de volúmenes individuales. En cambio, silenciar alterna el silencio maestro. Cuando se establece en true , se habilita el silenciamiento del grupo de volumen del automóvil y cada grupo de volumen individual se puede silenciar por separado. Cuando es true , el silenciamiento del grupo de volumen debe implementarse en el control de audio HAL .
audioUseHalDuckingSignals Definido en el archivo de configuración del servicio de automóvil para habilitar la API IAudioControl#onDevicesToDuckChange para informar a HAL cuándo agacharse. Cuando true (valor predeterminado), la API recibe señales que indican qué dispositivos de salida evitar y qué usos mantienen el foco. Cuando false , no se llama a la API. No se llama a la API a menos que Audio Control HAL implemente reducción.
config_oemCarService Definido en el archivo de configuración del servicio de automóvil, este es el nombre del componente para el servicio de personalización OEM. Los OEM pueden optar por implementar este servicio para personalizar las acciones de servicio del automóvil para diferentes políticas. Si los OEM optan por implementar este componente, deben implementar un servicio para ampliar OemCarService expuesto por car-lib y luego implementar los servicios de componentes requeridos. Específicamente para el 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 información, consulte Servicio de complementos de audio para el automóvil . Si el nombre del componente no es válido, CarService no se conectará a ningún servicio OEM. El nombre del componente no puede ser un paquete de terceros. Debe estar preinstalado.
audioVolumeAdjustmentContextsVersion

Definido en el archivo de configuración del servicio de automóvil, configuración para seleccionar la versión de la lista de prioridades 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 está limitada a los siguientes contextos, en este orden.

La versión predeterminada es 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Definido en el archivo de configuración del servicio de automóvil, configuración para persistir en el estado de silencio global. Cuando true (el valor predeterminado), Android restaura el estado de silencio global al arrancar. Cuando audioUseCarVolumeGroupMuting es true , esto no tiene ningún impacto en los cambios de silencio persistentes, ya que los cambios de silencio se basan en grupos de volúmenes individuales. El valor predeterminado se establece en true y se debe sobrescribir cuando el silencio maestro no se debe conservar para un dispositivo.
audioVolumeKeyEventTimeoutMs

Definido en el archivo de configuración del servicio de automóvil, configuración para indicar el tiempo de espera en milisegundos mientras un grupo de volumen de automóvil se considera activo para cambios de control de volumen durante eventos de tecla de volumen. La configuración se utiliza de la siguiente manera:

  • El tiempo de espera se utiliza 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 de volumen después de que haya dejado de reproducirse.
  • El tiempo de espera también se utiliza como la duración de la pausa requerida entre los ajustes automáticos de volumen para cambiar lo que el usuario está ajustando.

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

audioUseCarVolumeGroupEvent Definido en el archivo de configuración del servicio de automóvil, configuración para habilitar eventos de devolución de llamada a grupos de volúmenes. Cuando es true , los clientes reciben una devolución de llamada a través de ICarVolumeGroupEvent a eventos que afectan a los grupos de volúmenes. Cuando está habilitado:

  • Recomendamos encarecidamente que los proveedores también admitan IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback para eventos y cambios en el hardware de audio.
  • Cuando CarVolumeCallback y CarVolumeGroupEventCallback están registrados por la misma aplicación, el índice del grupo de volumen y las devoluciones de llamada de silencio del grupo de volumen pasarán únicamente por CarVolumeGroupEventCallback . Por lo tanto, recomendamos encarecidamente que todas las aplicaciones migren a la nueva interfaz de devolución de llamada para garantizar un rendimiento constante.
  • El valor predeterminado es false . Le recomendamos que establezca esto en true porque las API para admitir devoluciones de llamadas de volumen heredadas están en desuso y pronto se eliminarán por completo.

config_useFixedVolume Definido 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 el indicador config_useFixedVolume no está configurado o está configurado en false (el valor predeterminado), las aplicaciones pueden llamar a las API de administración de volumen AudioManager y cambiar el volumen por tipo de transmisión en el mezclador de software. Esto puede no ser deseable debido al efecto potencial en otras aplicaciones y al hecho de que la atenuación del volumen en el mezclador de software puede resultar en menos bits significativos disponibles en la señal cuando se recibe en el amplificador de hardware. Los dispositivos nuevos que no se han configurado y que están configurados en true reciben cambios de volumen a través de las API de volumen y silencio AudioManager .
config_handleVolumeKeysInWindowManager Definido en frameworks/base/core/res/res/values/config.xml , debe establecerse en true para permitir que el servicio de audio del automóvil intercepte eventos de clave de volumen. Si se configura en false (el valor predeterminado), los eventos de la tecla de volumen se pueden reenviar a la aplicación de primer plano y pueden provocar resultados adversos en la gestión de eventos de la tecla de volumen fuera del servicio de audio del automóvil.

Configuraciones del servicio de audio del automóvil

Antes de Android 13, las configuraciones de los servicios de automóviles se sobrescribían con una superposición de configuración del producto (para obtener más información, consulte Personalización de 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 superposiciones de recursos en tiempo de ejecución . Utilice un RRO para cambiar el valor de la configuración de audio del automóvil. Por ejemplo, consulte los RRO para la referencia cuttlefish automotriz en device/google/cuttlefish/shared/auto/rro_overlay/ . La 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 está contenido 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 configurado como com.android.car.updatable .

Consulte 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, es false . En la API CarAudioManager#isAudioFeatureEnabled , el parámetro pasado debe ser uno de:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING