Drapeaux AAOS de configuration audio,Drapeaux AAOS de configuration audio

Android Automotive OS (AAOS) utilise des indicateurs et des configurations pour activer différentes fonctionnalités, en commençant par le routage dynamique vers des indicateurs de fonctionnalités plus génériques, tels que le contrôle du volume du service automobile. Les indicateurs de configuration AAOS actuels pour la gestion audio sont décrits ici.

Drapeau But
audioUseDynamicRouting Défini dans le fichier de configuration du service automobile pour activer le routage AAOS . La configuration doit être définie sur true . Lorsque false , le routage et une grande partie de CarAudioService sont désactivés et le système d'exploitation revient au comportement par défaut décrit dans Configuration des politiques audio .
audioUseCarVolumeGroupMuting Défini dans le fichier de configuration du service de voiture pour activer la mise en sourdine de groupes de volumes individuels. Lorsqu'il est défini sur false (valeur par défaut), la mise en sourdine des groupes de volumes individuels est désactivée. Au lieu de cela, la mise en sourdine active la sourdine principale. Lorsqu'il est défini sur true , la mise en sourdine du groupe de volume de la voiture est activée et chaque groupe de volume individuel peut être mis en sourdine séparément. Lorsque cela est true , la mise en sourdine du groupe de volume doit être implémentée au niveau du HAL de contrôle audio .
audioUseHalDuckingSignals Défini dans le fichier de configuration du service de voiture pour permettre à l'API IAudioControl#onDevicesToDuckChange d'informer HAL quand se baisser. Lorsque true (valeur par défaut), l'API reçoit des signaux indiquant quels périphériques de sortie éviter et quelles utilisations sont prioritaires. Lorsque false , l'API n'est pas appelée. L'API n'est appelée que si Audio Control HAL implémente le ducking.
config_oemCarService Défini dans le fichier de configuration du service automobile, il s'agit du nom du composant du service de personnalisation OEM. Les constructeurs OEM peuvent choisir de mettre en œuvre ce service pour personnaliser les actions de service automobile en fonction de différentes politiques. Si les OEM choisissent d'implémenter ce composant, ils doivent implémenter un service pour étendre OemCarService exposé par car-lib, puis implémenter les services de composants requis. Pour le service audio de voiture en particulier, les constructeurs OEM peuvent implémenter n'importe lequel des sous-services audio pour gérer l'action audio. Pour plus de détails, consultez Service de plug-in audio de voiture . Si le nom du composant n'est pas valide, CarService ne se connectera à aucun service OEM. Le nom du composant ne peut pas être celui d'un package tiers. Il doit être pré-installé.
audioVolumeAdjustmentContextsVersion

Défini dans le fichier de configuration du service automobile, configuration pour sélectionner la version de la liste de priorités du contexte de réglage du volume.

La version 1 inclut tous les contextes audio, dans cet ordre :

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

La version 2 est limitée aux contextes suivants, dans cet ordre.

La version par défaut est 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Défini dans le fichier de configuration du service de voiture, configuration pour conserver l'état muet global. Lorsque true (valeur par défaut), Android restaure l'état de sourdine globale au démarrage. Lorsque audioUseCarVolumeGroupMuting est true , cela n’a aucun impact sur les modifications de sourdine persistantes, car les modifications de sourdine sont basées sur des groupes de volumes individuels. La valeur par défaut est définie sur true et doit être écrasée lorsque la sourdine principale ne doit pas être conservée pour un périphérique.
audioVolumeKeyEventTimeoutMs

Défini dans le fichier de configuration du service de voiture, configuration pour indiquer le délai d'attente en millisecondes pendant qu'un groupe de volumes de voiture est considéré comme actif pour les changements de contrôle de volume lors des événements de clé de volume. La configuration est utilisée comme suit :

  • Le délai d'attente est utilisé pour déterminer si une lecture (le volume audio associé à l'utilisation audio de la lecture) peut toujours être prise en compte pour la sélection automatique du volume après l'arrêt de la lecture.
  • Le délai d'attente est également utilisé comme durée de pause requise entre les ajustements automatiques du volume pour modifier ce que l'utilisateur est en train de régler.

La valeur par défaut est de 3000 millisecondes et doit être ajustée par les OEM pour adapter l'expérience utilisateur.

audioUseCarVolumeGroupEvent Défini dans le fichier de configuration du service automobile, configuration pour activer les événements de rappel vers les groupes de volumes. Lorsque true , les clients reçoivent un rappel via ICarVolumeGroupEvent pour les événements qui ont un impact sur les groupes de volumes. Lorsqu'il est activé :

  • Nous recommandons fortement aux fournisseurs de prendre également en charge IAudioControl#setModuleChangeCallback et IAudioControl#registerGainCallback pour les événements et les modifications apportées au matériel audio.
  • Lorsque CarVolumeCallback et CarVolumeGroupEventCallback sont enregistrés par la même application, l'index du groupe de volumes et les rappels de sourdine du groupe de volumes doivent passer par CarVolumeGroupEventCallback uniquement . Par conséquent, nous recommandons fortement que toutes les applications migrent vers la nouvelle interface de rappel pour garantir des performances cohérentes.
  • La valeur par défaut est false . Nous vous recommandons de définir cette valeur sur true , car les API permettant de prendre en charge les rappels de volumes existants sont obsolètes et seront bientôt complètement supprimées.

config_useFixedVolume Défini dans frameworks/base/core/res/res/values/config.xml . Doit être défini sur true pour permettre au service audio de la voiture de gérer le contrôle du volume. Lorsque l'indicateur config_useFixedVolume n'est pas défini ou est défini sur false (valeur par défaut), les applications peuvent appeler les API de gestion du volume AudioManager et modifier le volume par type de flux dans le mélangeur logiciel. Cela peut être indésirable en raison de l'effet potentiel sur d'autres applications et du fait que l'atténuation du volume dans le mélangeur logiciel peut entraîner une diminution du nombre de bits significatifs disponibles dans le signal lorsqu'il est reçu par l'amplificateur matériel. Les nouveaux appareils qui n'ont pas été configurés et qui sont définis sur true reçoivent les changements de volume via les API de volume et de sourdine AudioManager .
config_handleVolumeKeysInWindowManager Défini dans frameworks/base/core/res/res/values/config.xml , doit être défini sur true pour permettre au service audio de la voiture d'intercepter les événements de touches de volume. S'ils sont définis sur false (valeur par défaut), les événements de touche de volume peuvent être transmis à l'application de premier plan et peuvent entraîner des résultats défavorables de la gestion des événements de touche de volume en dehors du service audio de la voiture.

Configurations du service audio de voiture

Avant Android 13, les configurations de services de voiture étaient remplacées par une superposition de configuration de produit (pour en savoir plus, voir Personnalisation de la version avec des superpositions de ressources ) pour le fichier packages/services/Car/service/res/values/config.xml .

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

L'emplacement du fichier de configuration de <path_to_overlay> à l'emplacement réel doit inclure packages/services/Car/service/res/values/ .

RRO de services de voiture

Depuis Android 13, AAOS prend en charge les superpositions de ressources Runtime . Utilisez un RRO pour modifier la valeur de la configuration audio de la voiture. Par exemple, consultez les RRO pour la référence cuttlefish automobile dans device/google/cuttlefish/shared/auto/rro_overlay/ . La configuration audioUseDynamicRouting est remplacée dans device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

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

La carte de superposition des ressources est contenue dans device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :

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

Le manifeste de superposition de ressources défini dans device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contient le targetPackage défini comme com.android.car.updatable .

Consultez ces ressources pour plus d’informations :

API compatible avec les fonctionnalités

La méthode renvoie true si la fonctionnalité est activée sur l'appareil, sinon false . Dans l'API CarAudioManager#isAudioFeatureEnabled , le paramètre transmis doit être l'un des suivants :

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING