System operacyjny Android Automotive (AAOS) używa flag i konfiguracji do włączania różnych funkcji, począwszy od dynamicznego routingu po bardziej ogólne flagi funkcji, takie jak sterowanie głośnością z usługi samochodowej. Tutaj opisano flagi konfiguracji AAOS dotyczące zarządzania dźwiękiem.
Zgłoś | Cel | |
---|---|---|
audioUseDynamicRouting |
Zdefiniowany w pliku konfiguracji usługi samochodowej, aby włączyć routing AAOS.
Konfiguracja musi mieć wartość true . Gdy false ,
routing i duża część CarAudioService są wyłączone, system operacyjny
przechodzi do domyślnego zachowania opisanego w sekcji Konfigurowanie zasad dotyczących dźwięku.
|
|
audioUseCarVolumeGroupMuting
| Zdefiniowane w pliku konfiguracji usługi samochodowej, aby umożliwić wyciszenie poszczególnych grup głośności. Gdy ustawienie to ma wartość false (wartość domyślna), wyciszanie poszczególnych grup głośności jest wyłączone. Zamiast tego przełącznik wyciszenia powoduje wyciszenie główne.
Gdy ustawisz wartość true , wyciszenie grupy głośności samochodu zostanie włączone, a każdą grupę głośności można wyciszyć osobno. Gdy true , wyciszanie grupy głośności musi być zaimplementowane w interfejsie Audio Control HAL.
| |
audioUseHalDuckingSignals |
Zdefiniowany w pliku konfiguracji usługi samochodowej, aby umożliwić interfejsowi API IAudioControl#onDevicesToDuckChange informowanie HAL, kiedy należy się zatrzymać. Gdy true (wartość domyślna), interfejs API otrzymuje sygnały wskazujące, które urządzenia wyjściowe należy wyciszyć i jakie zastosowania mają pozostać w fokusie. Gdy false , interfejs API nie jest wywoływany. Interfejs API nie jest wywoływany, chyba że HAL sterowania dźwiękiem obsługuje tłumienie dźwięku.
|
|
config_oemCarService |
Zdefiniowana w pliku konfiguracji usługi samochodowej nazwa komponentu usługi dostosowywania OEM. Producenci oryginalnego wyposażenia mogą wdrożyć tę usługę, aby dostosować działania związane z obsługą samochodu do różnych zasad. Jeśli OEM zdecyduje się zaimplementować ten komponent, musi wdrożyć usługę rozszerzającą OemCarService udostępnianą przez car-lib, a następnie wdrożyć wymagane usługi komponentów. W przypadku usługi audio w samochodzie OEM może zaimplementować dowolną pod usługę audio, aby zarządzać działaniem audio. Więcej informacji znajdziesz w usłudze Car Audio Plugin Service.
Jeśli nazwa komponentu jest nieprawidłowa, CarService nie połączy się z żadną usługą OEM. Nazwa komponentu nie może być pakietem innej firmy. Musi być wstępnie zainstalowany. |
|
audioVolumeAdjustmentContextsVersion |
Zdefiniowany w pliku konfiguracji usługi samochodowej, aby wybrać wersję listy priorytetów kontekstu regulacji głośności. Wersja 1 zawiera wszystkie konteksty audio w tej kolejności:
Wersja 2 jest ograniczona do tych kontekstów (w tej kolejności): Wersja domyślna to
|
|
audioPersistMasterMuteState |
Zdefiniowany w pliku konfiguracji usługi samochodowej, aby zachować globalny stan wyciszenia. Gdy true (wartość domyślna) Android przywraca globalny stan wyciszenia po uruchomieniu. Jeśli audioUseCarVolumeGroupMuting jest ustawione na
true , nie ma to wpływu na trwałe zmiany wyciszenia, ponieważ zmiany wyciszenia są oparte na poszczególnych grupach głośności. Wartość domyślna to true i musi zostać zastąpiona, gdy nie chcesz, aby wyciszenie główne było przechowywane na urządzeniu. |
|
audioVolumeKeyEventTimeoutMs |
Zdefiniowana w pliku konfiguracji usługi samochodowej konfiguracja, która wskazuje czas oczekiwania (w milisekundach) podczas aktywnej zmiany głośności w samochodzie podczas zdarzeń związanych z kluczem głośności. Konfiguracja jest używana w ten sposób:
Wartość domyślna to |
|
audioUseCarVolumeGroupEvent |
Zdefiniowana w pliku konfiguracji usługi samochodowej konfiguracja umożliwiająca przekazywanie zdarzeń wywołania zwrotnego do grup objętości. Gdy true , klienci otrzymują wywołanie zwrotne ICarVolumeGroupEvent dotyczące zdarzeń, które wpływają na grupy objęte objętością. Gdy jest włączona:
Wartość domyślna to |
|
config_useFixedVolume
| Zdefiniowane w frameworks/base/core/res/res/values/config.xml .
Musi być ustawiony na true , aby umożliwić usłudze audio w samochodzie zarządzanie regulacją głośności. Jeśli flaga config_useFixedVolume nie jest ustawiona lub jest ustawiona na false (wartość domyślna), aplikacje mogą wywoływać interfejsy API do zarządzania głośnością AudioManager i zmieniać głośność według typu strumienia w mikserze programowym. 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 programowym może spowodować, że sygnał będzie zawierał mniej znaczących bitów po otrzymaniu na wzmacniaczu sprzętowym. Nowe urządzenia, które nie zostały skonfigurowane i są ustawione na true , otrzymują zmiany głośności za pomocą interfejsów API do regulowania głośności i wyciszania AudioManager .
|
|
config_handleVolumeKeysInWindowManager |
Zdefiniowana w ustawieniu frameworks/base/core/res/res/values/config.xml , musi mieć wartość true , aby umożliwić usłudze audio w samochodzie przechwytywanie zdarzeń związanych z klawiszami głośności. Jeśli ustawisz wartość false (wartość domyślna), zdarzenia związane z kluczem głośności mogą być przekierowywane do aplikacji na pierwszym planie, co może spowodować niekorzystne skutki zarządzania zdarzeniami związanymi z kluczem głośności poza usługą audio samochodu. |
Konfiguracje usługi dźwięku w samochodzie
Przed Androidem 13 konfiguracje usług samochodowych były zastępowane za pomocą nakładki konfiguracji produktu (więcej informacji znajdziesz w artykule Dostosowywanie kompilacji za pomocą nakładek zasobów) w pliku packages/services/Car/service/res/values/config.xml
.
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
Lokalizacja pliku konfiguracyjnego (<path_to_overlay>
) powinna obejmować packages/services/Car/service/res/values/
.
Serwis samochodowy RROs
Od Androida 13 AAOS obsługuje nakładki zasobów w czasie wykonywania. Użyj RRO, aby zmienić wartość konfiguracji dźwięku w samochodzie. Przykład: RRO dotyczące cuttlefish
w dokumentacji device/google/cuttlefish/shared/auto/rro_overlay/
. Konfiguracja audioUseDynamicRouting
jest zastąpiona w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml
.
<resources>
<bool name="audioUseDynamicRouting">true</bool>
...
Mapa nakładki zasobów znajduje się w tych miejscach:device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml
:
<overlay>
...
<item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>
Plik manifestu nakładki zasobu zdefiniowany w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml
zawiera element 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 w czasie wykonywania
Interfejs API z włączonymi funkcjami
Metoda zwraca true
, jeśli funkcja jest włączona na urządzeniu, w przeciwnym razie false
. W interfejsie API CarAudioManager#isAudioFeatureEnabled
parametr przekazany w ramach wywołania musi być jednym z tych:
AUDIO_FEATURE_DYNAMIC_ROUTING
AUDIO_FEATURE_VOLUME_GROUP_MUTING
AUDIO_FEATURE_OEM_AUDIO_SERVICE
AUDIO_FEATURE_VOLUME_GROUP_EVENTS
AUDIO_FEATURE_AUDIO_MIRRORING