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:
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 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 valor predeterminado es de |
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:
El valor predeterminado es |
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:
- 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 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