Marcas de AAOS de configuración de audio

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

Marca Propósito
audioUseDynamicRouting Se define en el archivo de configuración del servicio de automóvil como Habilita el enrutamiento de AAOS. La configuración se debe establecer en true. Cuando false, y la mayor parte de CarAudioService, están inhabilitados, y el SO regresa al comportamiento predeterminado descrito en Configura políticas de audio.
audioUseCarVolumeGroupMuting Se definió en el archivo de configuración del servicio de autos para habilitar grupos de volúmenes. Cuando se establece en false (el valor predeterminado), silenciar las llamadas los grupos de volúmenes individuales están inhabilitados. En cambio, si se desactiva el sonido, se activará el silenciamiento principal. Cuando se establece en true, se habilita el sonido grupal del volumen del automóvil y cada uno un grupo de volumen individual se puede silenciar por separado. Cuando true, la función para silenciar grupos de volúmenes debe implementarse en la 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 para informar a la HAL cuándo pato. Cuando es true (valor predeterminado), la API recibe indicadores que indican qué dispositivos de salida para disminuir y qué usos mantienen el foco. Cuando false, no se llama a la API. La API no se llama a menos que HAL de control de audio implementa el autosilenciado de fondo.
config_oemCarService Tal como se define en el archivo de configuración del servicio de automóvil, este es el nombre del componente para el servicio de personalización de OEM. Los OEM pueden optar por implementar este servicio para personalizar las acciones de los servicios de automóviles para distintas políticas. Si los OEMs optan por implementa este componente, deben implementar un servicio que extienda OemCarService expone mediante car-lib y, luego, implementa los servicios de componentes necesarios. Específicamente, en el caso de los servicios de audio para automóviles, los OEM puede implementar cualquiera de los servicios secundarios de audio para administrar las acciones de audio. Para en detalle, consulta Servicio del complemento de audio del auto. Si el nombre del componente no es válido, CarService no se conectó. a cualquier servicio de OEM. El nombre del componente no puede ser un paquete de terceros. Integra debe estar preinstalada.
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 se limita a los siguientes contextos y 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 de automóviles; la configuración se mantiene global silencio. Cuando true (el valor predeterminado), Android restablece la el estado de silencio global durante el inicio. Cuando audioUseCarVolumeGroupMuting sea true, esto no afecta los cambios de silencio persistentes los cambios se basan en grupos de volúmenes individuales. El valor predeterminado es true y debe reemplazarse cuando no se debe silenciar la instancia principal. persistentes para un dispositivo.
audioVolumeKeyEventTimeoutMs

Se define en el archivo de configuración del servicio de automóvil, y la configuración indica la tiempo de espera en milisegundos mientras un grupo de volumen del automóvil se considera activo por cambia 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 utiliza para determinar si una reproducción (volumen de audio asociado con el uso del audio de la reproducción) pueden considerarse para uso seleccionar el volumen luego de detener la reproducción.
  • El tiempo de espera también se usa como la duración de la pausa necesaria entre ajustes de volumen para cambiar lo que el usuario está ajustando.

El valor predeterminado es 3000 milisegundos y debería ser que los OEM ajustan para personalizar la experiencia del usuario.

audioUseCarVolumeGroupEvent Se define en el archivo de configuración del servicio del vehículo, hay una configuración para habilitar la devolución de llamada eventos a grupos de volúmenes. Cuando es true, los clientes reciben una devolución de llamada hasta ICarVolumeGroupEvent hasta eventos que afectan el volumen grupos. Cuando la función esté habilitada, ocurrirá lo siguiente:

  • Recomendamos encarecidamente que los proveedores también admitan IAudioControl#setModuleChangeCallback y IAudioControl#registerGainCallback para los eventos y los cambios en hardware de audio.
  • Cuando CarVolumeCallback y La misma persona registra a CarVolumeGroupEventCallback el índice de grupo de volúmenes y las devoluciones de llamada para silenciar el grupo de volúmenes deben ir Solo a través de CarVolumeGroupEventCallback. Por lo tanto, recomendamos que todas las apps migren a la nueva de devolución de llamada para garantizar un rendimiento coherente.
  • El valor predeterminado es false. Te recomendamos que establezcas a true porque las APIs para admitir el volumen heredado las devoluciones de llamada están obsoletas y pronto se quitarán por completo.

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 del vehículo lo administre. control de volumen. Cuando la marca config_useFixedVolume no está establecido o está establecido en false (el valor predeterminado), las apps pueden llamar al AudioManager las APIs de administración de volumen y cambia el volumen el tipo de transmisión en el mezclador de software. Esto puede ser indeseable debido a la el efecto potencial en otras apps y el hecho de que la atenuación del volumen de software puede tener como resultado menos bits significativos disponibles en el cuando se reciben en el amplificador de hardware. Los dispositivos nuevos que no tienen que se configuraron y que están configuradas para que true reciban cambios en el volumen a través de las APIs de volumen y silencio de AudioManager.
config_handleVolumeKeysInWindowManager Se define en frameworks/base/core/res/res/values/config.xml, debe establécelo en true para permitir que el servicio de audio del vehículo intercepte eventos de tecla de volumen. Si se establece en false (el valor predeterminado), el volumen los eventos clave pueden reenviarse a la aplicación en primer plano y pueden provocar resultados de la administración de eventos clave de volumen fuera del servicio de audio del vehículo.

Configuración del servicio de audio del auto

Antes de Android 13, se reemplazaban las configuraciones del servicio de vehículos 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 el lugar la ubicación debe incluir packages/services/Car/service/res/values/.

RRO de servicio de automóviles

A partir de Android 13, AAOS admite Superposiciones de recursos del entorno de ejecución. Usa una RRO para cambiar la de la configuración del audio del automóvil. Por ejemplo, consulta las RRO de la referencia de la industria automotriz cuttlefish en device/google/cuttlefish/shared/auto/rro_overlay/ El Se anuló la configuración de audioUseDynamicRouting 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 incluye 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 objeto targetPackage configurado como com.android.car.updatable.

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

API con funciones habilitadas

El método devuelve true si la función está habilitada en el dispositivo; de lo contrario, false En la API de CarAudioManager#isAudioFeatureEnabled, el parámetro pasado 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