Na poniższym diagramie przedstawiono komponenty, które wchodzą w interakcje z multimediami:
Rysunek 1. Komponenty systemu
Elementy na tym ilustracji zostały opisane w tabeli:
Komponent | Opis |
---|---|
Ekran główny | Reprezentuje inne powierzchnie w interfejsie samochodu, które wyświetlają aktualnie odtwarzane treści i sterują nimi multimediów. W AOSP jest to ekran główny wyświetlany po uruchomieniu systemu. Na tym ekranie użytkownicy mogą wyświetlać szczegóły odtwarzanego elementu multimedialnego i wykonywać ograniczony zestaw i działania niestandardowe (np. Odtwórz i Wstrzymaj). |
Interfejs systemu | Udostępnia funkcje obejmujące opcje globalnej nawigacji w interfejsie, takie jak przejście do Multimedia. |
Asystenci | Android udostępnia mechanizmy, które umożliwiają różnym aplikacjom Asystenta głosowego interakcję z systemem. Aplikacje te mogą wchodzić w interakcje ze źródłami multimediów w tle (np. odtwarzać utworu w wyniku polecenia głosowego) lub przejdź do opcji Multimedia na pierwszym planie (np. gdy aplikacja asystenta głosowego ma wyświetlić interfejs określonego źródła multimediów). |
Menu z aplikacjami | Wszystkie aplikacje na Androida, w tym Źródła multimediów, zaczynają się w Menu z aplikacjami. Multimedia mogą ma własny selektor źródła multimediów, który uzupełnia lub zastępuje Menu z aplikacjami jako który jest punktem wyjścia dla mediów. |
Sklep Google Play | W przypadku GAS użytkownicy znajdują i instalują nowe aplikacje urządzenie z Androidem, W przypadku multimediów po zainstalowaniu aplikacji użytkownicy są przekierowywani do sekcji Media dokończyć proces logowania lub zacząć korzystać z aplikacji. |
Menedżer sesji medialnych | Usługa systemowa Androida, która śledzi i kontroluje sesje multimediów ze wszystkich źródeł multimediów. it zapewnia mechanizmy wykrywania, kiedy źródło multimediów staje się multimediami na pierwszym planie. źródła. Multimedia i wszystkie inne aplikacje, które wyświetlają aktualnie odtwarzane źródło multimediów (na np. ekranie głównym), za pomocą Menedżera sesji multimediów wykrywaj te zdarzenia i zaktualizuj ich interfejs. odpowiednio się zmienia. Źródła mediów wchodzą w interakcję z menedżerem sesji multimediów za pomocą Multimedia Session API. |
Radio | Specjalna aplikacja do obsługi sprzętu radiowego. Wyszukiwanie radia Stacje radiowe, szybkie wybieranie ostatnio zidentyfikowanych stacji i przełączanie się między pasmami radiowymi. Komponenty interfejsu używane zarówno przez radio, jak i multimedia umożliwiają użytkownikowi przełączanie się między nimi. i aplikacji. |
Funkcja Driver Distraction Engine | Usługa systemowa Androida używana do nakładania ograniczeń UX na podstawie stanu jazdy w samochodzie. W przypadku logowania się w przypadku źródeł multimediów i UX ustawień (gdzie ekran jest sterowany bezpośrednio przez źródeł multimediów), ta usługa dba o to, aby w samochodzie nie wyświetlały się niebezpieczne treści w stanie jazdy. OEM może dostosować definicję tych stanów i sposób, w jaki system reaguje w takich sytuacjach (np. przez wyświetlenie blokującej nakładki ekranu). |
Procesy użytkownika
Wprowadzenie aplikacji do multimediów
Proces uruchamiania multimediów jest widoczny poniżej.
Rysunek 2. Wprowadzenie aplikacji do multimediów
Multimedia muszą być publikowane w następujący sposób: domyślnie
CAR_INTENT_ACTION_MEDIA_TEMPLATE
Intencja ta może zawierać następujące informacje jako dodatkowe:
-
android.car.intent.extra.MEDIA_COMPONENT
(opcjonalnie). Dodatkowy ciąg znaków reprezentują nazwę spłaszczonego składnikaMediaBrowserService
w aplikacji do multimediów, z którą ma się połączyć. Jeśli nie zostanie podany, multimedia zostaną wyświetlone obecnie wybranej aplikacji do multimediów. Ta intencja jest używana z tych źródeł punkty wejścia:-
Interfejs systemu. Służy do powrotu do ekranu multimedialnego lub rozpoczęcia za pierwszym razem. W tym przypadku powyższa intencja zostałaby użyta bez żadnych aby umożliwić wyświetlanie wybranej aplikacji do multimediów.
-
Ekran główny, Asystent i centrum powiadomień. Użytkownicy mogą przejdź do multimediów, by wyświetlić wybraną aplikację do multimediów. We wszystkich przypadkach aktywowana jest intencja niejawna bez elementów dodatkowych.
-
Menu z aplikacjami. Gdy użytkownicy wybiorą aplikację do multimediów na Menu z aplikacjami, powyższa intencja zawiera
CAR_EXTRA_MEDIA_COMPONENT
dodatkowo, który zawiera wybraną aplikację do multimediów. Media oznaczają ją jako wybraną aplikację i nawiązanie z nią połączenia. Szczegółowe informacje znajdziesz poniżej w sekcji Aplikacje Integracja Menu z aplikacjami z multimediami.
-
Integracja Menu z aplikacjami z multimediami
Aplikacje do multimediów nie mogą oferować żadnych działań oznaczonych etykietą
Kategoria android.intent.category.LAUNCHER
. W związku z tym Menu z aplikacjami (lub
odpowiednik) musi zaimplementować specjalną logikę, aby adresować integrację źródła multimediów:
-
Menu z aplikacjami musi skanować system pod kątem pakietów implementujących
MediaBrowserService.SERVICE_INTERFACE
W przypadku tych pakietów Menu z aplikacjami pobiera ikonę usługi podobną do tej, która służy do pobierania innych aktywności. -
Menu z aplikacjami łączy te pakiety z tymi, które implementują Aktywności:
android.intent.category.LAUNCHER
. Jeśli aplikacja udostępniaMediaBrowserService
i działania programu uruchamiającego, usługa zajmuje pierwszeństwo.Obecnie żadna aplikacja źródłowa nie może udostępniać aktywności programu uruchamiającego.
- Przykład takiej logiki znajdziesz w kodzie AOSP na stronie
AppLauncherUtils#getAllLauncherApps()
Opcje konfiguracji i procesu logowania
Aplikacje do multimediów mogą zawierać aktywność związaną z ustawieniami zoptymalizowaną pod kątem pojazdu. Takie działanie może być używane do implementacji przepływów użytkowników, które nie są adresowane przez interfejsy API Android Media, na przykład:
- Zaloguj się
- Wyloguj się
- Przełączanie kont
- Ekran, na którym użytkownik jest obecnie zalogowany (jeśli z niego korzysta)
- Konfiguracja usługi
Rysunek 3. Proces logowania
Ta aktywność związana z ustawieniami jest deklarowana przez aplikację do multimediów przy użyciu tego filtra intencji:
<activity android:name=".AppSettingsActivity" android:exported="true android:theme="@style/SettingsActivity" android:label="@string/app_settings_activity_title"> <intent-filter> <action android:name="android.intent.action.APPLICATION_PREFERENCES"/> </intent-filter> </activity>
Media muszą stosować tę logikę:
-
Sprawdź, czy wybrana aplikacja do multimediów zawiera aktywność z danymi Filtr intencji.
-
Jeśli tak, zezwól użytkownikowi na przejście do aktywności.
-
Jeśli obowiązują ograniczenia dotyczące wygody korzystania z samochodu (np. gdy samochód jest w ruchu), ta afordancja powinna zostanie wyłączona, ponieważ aktywność w Ustawieniach nie jest interfejsem zoptymalizowanym pod kątem kierowcy.
Błąd obsługi i wymagane logowanie
Współdziałanie multimediów z aplikacjami do multimediów odbywa się przez interfejs Android Media Session API. W ramach
Interfejs API, Media otrzymują
PlaybackState
który komunikuje obecny stan aplikacji do multimediów.
Proces logowania rozpoczyna się po zmianie aplikacji do multimediów
PlaybackState
do
STATE_ERROR
,
m.in. konkretny kod błędu (szczegóły poniżej). Gdy to
gdy wystąpi, Media wyświetli opis błędu i afordancję, aby przejść do aktywności logowania.
implementowana przez aplikację do multimediów.
W ten sam sposób aplikacje mogą sygnalizować inne problemy (np. błąd połączenia z serwerem).
Rysunek 4. Obsługa błędów
W ramach normalnej obsługi błędów PlaybackState
usługa Media musi sprawdzać poniższe dane wejściowe.
-
PlaybackState
kod błędu równyPlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED
To sygnał że aplikacja do multimediów wymaga zalogowania się, aby kontynuować działanie. Inne kody błędów które wskazują inne rodzaje błędów. -
Komunikat o błędzie
PlaybackState
(ustawiony przez aplikacje do multimediów korzystające zPlaybackStateCompat.Builder#setErrorMessage
) zawiera zrozumiałe dla człowieka wyjaśnienie (na przykład: „Nie jesteś zalogowanym użytkownikiem”). Ta wiadomość musi zostać wyświetlona musi zachęcać użytkowników do rozproszenia uwagi. -
Opcjonalnie
PlaybackState
może zawierać te dodatki (ustawione przez multimedia) aplikacje z pakietemPlaybackStateCompat.Builder#setExtras
) przy użyciu następujących kluczy.-
android.media.extras.ERROR_RESOLUTION_ACTION_LABEL
Ustaw na ciąg, który zawiera zrozumiałą dla człowieka wiadomość, która ma być wyświetlana na przycisku dotkniętym przez użytkownika, aby uruchomić proces logowania. -
android.media.extras.ERROR_RESOLUTION_ACTION_INTENT
Ustaw za pomocąPendingIntent
, aby uruchamiany, gdy użytkownik kliknie wspomniany przycisk. TenPendingIntent
wskazuje niestandardowe logowanie zaimplementowane przez tę samą aplikację do multimediów.
-
-
PlaybackState
stan jest równySTATE_ERROR
Oznacza to, że dopóki się nie zalogujesz, żadne inne działania nie będą możliwe.