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, el SO recurre al comportamiento predeterminado que se describe en Cómo configurar políticas de audio.
|
|
audioUseCarVolumeGroupMuting
| Se define en el archivo de configuración del servicio de automóviles para habilitar la silenciación de grupos de volumen individuales. Cuando se establece en false (el valor predeterminado), se inhabilita la silenciación de grupos de volumen individuales. En su lugar, el silenciamiento activa el silenciamiento principal.
Cuando se establece en true , se habilita la silenciación del grupo de volumen del automóvil y se puede silenciar cada grupo de volumen de forma individual. Cuando true , se debe implementar la silenciación del grupo de volumen en el HAL de control de audio.
| |
audioUseHalDuckingSignals |
Se define en el archivo de configuración del servicio de automóvil para permitir que la API de IAudioControl#onDevicesToDuckChange informe a HAL cuándo agacharse. Cuando es true (valor predeterminado), la API recibe indicadores que indican qué dispositivos de salida se deben ocultar y qué usos mantienen el enfoque. Cuando false , no se llama a la API. No se llama a la API, a menos que el HAL de control de audio implemente la atenuación.
|
|
config_oemCarService |
Se define en el archivo de configuración del servicio de automóviles y es el nombre del componente del servicio de personalización del OEM. Los OEMs pueden implementar este servicio para personalizar las acciones de servicio de automóviles para diferentes políticas. Si los OEMs optan por implementar este componente, deben implementar un servicio para extender el OemCarService que expone car-lib y, luego, implementar los servicios de componentes requeridos. En el caso específico del servicio de audio para automóviles, los OEMs pueden implementar cualquiera de los subservicios de audio para administrar la acción de audio. Para obtener más detalles, consulta Servicio de complementos de audio para automóviles.
Si el nombre del componente no es válido, CarService no se conectará a ningún servicio de 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 de automóvil, la 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:
La versión 2 se limita a los siguientes contextos, en este orden. La versión predeterminada es
|
|
audioPersistMasterMuteState |
Se define en el archivo de configuración del servicio de automóviles, la configuración para conservar el estado de silenciamiento global. Cuando true (el valor predeterminado), Android restablece el estado de silenciamiento global durante el inicio. Cuando audioUseCarVolumeGroupMuting es true , esto no tiene ningún impacto en los cambios de silenciamiento persistentes, ya que los cambios de silenciamiento se basan en grupos de volumen individuales. El valor predeterminado se establece en true y se debe reemplazar cuando no se debe conservar la silenciación principal para un dispositivo. |
|
audioVolumeKeyEventTimeoutMs |
Se define en el archivo de configuración del servicio de automóvil. Es la configuración para indicar el tiempo de espera en milisegundos mientras un grupo de volumen del automóvil se considera activo para los cambios de control de volumen durante los eventos de teclas de volumen. La configuración se usa de la siguiente manera:
El valor predeterminado es de |
|
audioUseCarVolumeGroupEvent |
Se define en el archivo de configuración del servicio de automóvil, la configuración para habilitar eventos de devolución de llamada a grupos de volumen. Cuando true , los clientes reciben una devolución de llamada a través de ICarVolumeGroupEvent a los eventos que afectan a los grupos de volumen. Cuando la función está habilitada, ocurre lo siguiente:
El valor predeterminado es |
|
config_useFixedVolume
| Se define en frameworks/base/core/res/res/values/config.xml .
Se debe establecer en true para permitir que el servicio de audio para automóviles 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 no ser deseable debido al efecto potencial 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. Los dispositivos nuevos que no se configuraron y que están configurados en true reciben cambios de volumen a través de las APIs de volumen y silenciamiento de AudioManager .
|
|
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 para automóviles intercepte los eventos de teclas de volumen. Si se establece en false (el valor predeterminado), los eventos de teclas de volumen se pueden reenviar a la app en primer plano y pueden generar resultados adversos de la administración de eventos de teclas de volumen fuera del servicio de audio del automóvil. |
Parámetros de configuración del servicio de audio para automóviles
Antes de Android 13, las configuraciones de servicios para vehículos se reemplazaban con una superposición de configuración de productos (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 de <path_to_overlay>
a la ubicación real debe incluir packages/services/Car/service/res/values/
.
RRO de servicios de automóviles
Desde Android 13, AAOS admite 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 RRO de la referencia cuttlefish
de la industria automotriz en device/google/cuttlefish/shared/auto/rro_overlay/
. La configuración de 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:
- Superposiciones de recursos en tiempo de ejecución
- Soluciona problemas de superposiciones de recursos de entorno de ejecución
API habilitada para funciones
El método muestra true
si la función está habilitada en el dispositivo; de lo contrario, muestra 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