Komponenty systemu i procesy użytkownika

Na poniższym diagramie przedstawiono komponenty, które wchodzą w interakcje z multimediami:

Komponenty systemu

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.

Wprowadzenie aplikacji do multimediów

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ładnika MediaBrowserService 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ępnia MediaBrowserService 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

Proces logowania

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).

Obsługa błędów

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ówny PlaybackStateCompat#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 z PlaybackStateCompat.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 pakietem PlaybackStateCompat.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. Ten PendingIntent wskazuje niestandardowe logowanie zaimplementowane przez tę samą aplikację do multimediów.

  • PlaybackState stan jest równy STATE_ERROR Oznacza to, że dopóki się nie zalogujesz, żadne inne działania nie będą możliwe.