System operacyjny Android Automotive (AAOS) używa flag i konfiguracji do włączania różnych funkcji, począwszy od routingu dynamicznego po bardziej ogólne flagi funkcji, takie jak sterowanie głośnością z poziomu usługi samochodowej. Flagi konfiguracji AAOS do zarządzania dźwiękiem są opisane tutaj.
| Flaga | Cel |
|---|---|
audioUseDynamicRouting |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby
włączyć routing AAOS.
Konfiguracja musi być ustawiona na true. Gdy wartość to false,
routing i większość funkcji CarAudioService są wyłączone, a system operacyjny
wraca do domyślnego zachowania opisanego w
Konfigurowanie zasad dotyczących dźwięku.
|
useCoreAudioRouting |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby
włączyć zarządzanie routingiem dźwięku w AAOS.
Gdy wartość jest ustawiona na true, usługa dźwięku w samochodzie używa
definicji konfiguracji ustawionych za pomocą
konfigurowalnego mechanizmu zasad dotyczących dźwięku.
Jeśli wartość jest ustawiona na false, zarządzanie routingiem wraca
do definicji dynamicznej mieszanki zasad dotyczących dźwięku w usłudze dźwięku w samochodzie skonfigurowanej za pomocą audioUseDynamicRouting.
|
useCoreAudioVolume |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby
włączyć zarządzanie głośnością dźwięku w AAOS.
Gdy wartość jest ustawiona na true, usługa dźwięku w samochodzie używa
definicji grup głośności ustawionych za pomocą
konfigurowalnego mechanizmu zasad dotyczących dźwięku.
Jeśli wartość jest ustawiona na false, zarządzanie głośnością wraca do domyślnej definicji grupy głośności w usłudze dźwięku w samochodzie skonfigurowanej za pomocą audioUseDynamicRouting.
|
audioUseCarVolumeGroupMuting |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć wyciszanie poszczególnych
grup głośności. Gdy wartość jest ustawiona na false (wartość domyślna), wyciszanie poszczególnych grup głośności jest wyłączone. Zamiast tego wyciszanie przełącza wyciszenie główne.
Gdy wartość jest ustawiona na true, wyciszanie grupy głośności w samochodzie jest włączone i każdą
grupę głośności można wyciszyć osobno. Gdy wartość to true,
wyciszanie grupy głośności musi być zaimplementowane w
HAL sterowania dźwiękiem.
|
audioUseHalDuckingSignals |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć interfejs API
IAudioControl#onDevicesToDuckChange informujący HAL, kiedy należy
wyciszyć dźwięk. Gdy true (wartość domyślna), interfejs API otrzymuje sygnały wskazujące, które
urządzenia wyjściowe mają być wyciszone i które zastosowania mają fokus. Gdy wartość to false,
interfejs API nie jest wywoływany. Interfejs API nie jest wywoływany, chyba że
HAL sterowania dźwiękiem
implementuje wyciszanie.
|
config_oemCarService |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Jest to nazwa komponentu usługi dostosowywania OEM.
Producenci OEM mogą zaimplementować tę usługę, aby
dostosować działania usługi samochodowej do różnych zasad. Jeśli producenci OEM zdecydują się zaimplementować ten komponent, muszą zaimplementować usługę, która rozszerza OemCarService udostępnianą przez car-lib, a następnie zaimplementować wymagane usługi komponentu. W przypadku usługi dźwięku w samochodzie producenci OEM
mogą zaimplementować dowolną z usług podrzędnych dźwięku, aby zarządzać działaniem dźwięku. Więcej informacji znajdziesz w artykule Usługa wtyczki dźwięku w samochodzie.
Jeśli nazwa komponentu jest nieprawidłowa, CarService nie połączy się
z żadną usługą OEM. Nazwa komponentu nie może być pakietem firmy zewnętrznej. Musi być wstępnie zainstalowana. |
audioVolumeAdjustmentContextsVersion |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca wybranie wersji listy priorytetów kontekstu dostosowania głośności. Wersja 1 zawiera wszystkie konteksty dźwięku w tej kolejności:
Wersja 2 jest ograniczona do tych kontekstów w tej kolejności. Domyślna wersja to
|
audioPersistMasterMuteState |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca utrwalanie globalnego
stanu wyciszenia. Gdy true (wartość domyślna), Android przywraca
globalny stan wyciszenia podczas uruchamiania. Gdy audioUseCarVolumeGroupMuting ma wartość
true, nie ma to wpływu na utrwalanie zmian wyciszenia, ponieważ zmiany wyciszenia są oparte na poszczególnych grupach głośności. Wartość domyślna jest ustawiona na
true i musi zostać zastąpiona, gdy wyciszenie główne nie powinno być
utrwalane na urządzeniu. |
audioVolumeKeyEventTimeoutMs |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca określenie limitu czasu w milisekundach, przez który grupa głośności w samochodzie jest uznawana za aktywną w przypadku zmian sterowania głośnością podczas zdarzeń przycisków głośności. Konfiguracja jest używana w ten sposób:
Wartość domyślna to |
audioUseCarVolumeGroupEvent |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca włączanie wywołań zwrotnych
do grup głośności. Gdy true, klienci otrzymują wywołanie zwrotne
za pomocą ICarVolumeGroupEvent do zdarzeń, które mają wpływ na grupy głośności. Gdy ta opcja jest włączona:
Wartość domyślna to |
config_useFixedVolume |
Zdefiniowana w frameworks/base/core/res/res/values/config.xml.
Aby usługa dźwięku w samochodzie mogła zarządzać
sterowaniem głośnością, ta opcja musi być ustawiona na true. Gdy flaga config_useFixedVolume nie jest
ustawiona lub ma wartość false (wartość domyślna), aplikacje mogą wywoływać
interfejsy API zarządzania głośnością AudioManager i zmieniać głośność według
typu strumienia w mikserze oprogramowania. Może to być niepożądane ze względu na
potencjalny wpływ na inne aplikacje oraz fakt, że tłumienie głośności w
mikserze oprogramowania może spowodować, że w
sygnale odbieranym przez wzmacniacz sprzętowy będzie dostępnych mniej znaczących bitów. Nowe urządzenia, które nie zostały skonfigurowane i mają ustawioną wartość true, otrzymują zmiany głośności za pomocą interfejsów API głośności i wyciszenia AudioManager.
|
config_handleVolumeKeysInWindowManager |
Zdefiniowana w frameworks/base/core/res/res/values/config.xml. Aby usługa dźwięku w samochodzie mogła przechwytywać zdarzenia przycisków głośności, ta opcja musi
być ustawiona na true. Jeśli wartość jest ustawiona na false (wartość domyślna), zdarzenia przycisków głośności mogą być przekazywane do aplikacji działającej na pierwszym planie, co może prowadzić do niekorzystnych wyników zarządzania zdarzeniami przycisków głośności poza usługą dźwięku w samochodzie. |
audioUseMinMaxActivationVolume |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć
minimalną i maksymalną głośność aktywacji. Gdy
true, indeks wzmocnienia głośności można dostosować ze względu na
zarządzanie minimalną i maksymalną głośnością aktywacji. Gdy
false (wartość domyślna), minimalna i maksymalna głośność aktywacji nie mają wpływu.
|
audioUseFadeManagerConfiguration |
Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć
zachowanie utraty aktywności audio wymuszane przez system. Gdy wartość to true,
platforma dźwięku w samochodzie analizuje definicje konfiguracji zanikania dźwięku w samochodzie i
stosuje odpowiednią FadeManagerConfiguration podczas wysyłania
utraty aktywności audio. Gdy wartość to false (wartość domyślna), system nie wymusza zachowania zanikania, gdy aplikacja traci aktywność audio.
|
Konfiguracje usługi dźwięku w samochodzie
Przed Androidem 13 konfiguracje usługi samochodowej były zastępowane
nakładką konfiguracji produktu (więcej informacji znajdziesz w artykule
Dostosowywanie kompilacji za pomocą nakładek zasobów)
w przypadku pliku packages/services/Car/service/res/values/config.xml.
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
Ścieżka do pliku konfiguracyjnego od <path_to_overlay> do rzeczywistej
lokalizacji powinna zawierać packages/services/Car/service/res/values/.
RRO usługi samochodowej
Od Androida 13 AAOS obsługuje
nakładki zasobów środowiska wykonawczego. Użyj RRO, aby zmienić wartość konfiguracji dźwięku w samochodzie. Na przykład RRO dla
referencyjnego urządzenia cuttlefish w motoryzacji znajdziesz w
device/google/cuttlefish/shared/auto/rro_overlay/. Konfiguracja audioUseDynamicRouting jest zastępowana w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.
<resources>
<bool name="audioUseDynamicRouting">true</bool>
...
Mapa nakładek zasobów znajduje się w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:
<overlay>
...
<item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>
Manifest nakładki zasobów zdefiniowany w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml zawiera targetPackage ustawiony jako com.android.car.updatable.
Więcej informacji znajdziesz w tych materiałach:
- Nakładki zasobów środowiska wykonawczego
- Rozwiązywanie problemów z nakładkami zasobów środowiska wykonawczego
Interfejs API z włączoną funkcją
Metoda zwraca true, jeśli funkcja jest włączona na urządzeniu, w przeciwnym razie false. W interfejsie API CarAudioManager#isAudioFeatureEnabled przekazywany parametr musi być jednym z tych:
AUDIO_FEATURE_DYNAMIC_ROUTINGAUDIO_FEATURE_VOLUME_GROUP_MUTINGAUDIO_FEATURE_OEM_AUDIO_SERVICEAUDIO_FEATURE_VOLUME_GROUP_EVENTSAUDIO_FEATURE_AUDIO_MIRRORING