Integracja precyzyjnych linków z aplikacjami do multimediów

Z tego dokumentu dowiesz się, jak deweloperzy aplikacji innych firm mogą dodawać precyzyjne linki do aplikacji multimedialnych AAOS. Precyzyjne linki do multimediów umożliwiają otwieranie aplikacji AAOS Media za pomocą precyzyjnych linków w taki sam sposób jak na urządzeniu mobilnym.

Obsługiwane wersje

Aby pobrać najnowszą obsługiwaną wersję, zapoznaj się z najnowszymi elementami kompilacji.

  • CarMediaApp.apk
  • TestMediaApp.apk

Jak to działa

Gdy precyzyjny link zostanie otwarty w AAOS, otworzy aplikację multimedialną, która obsługuje dany schemat. Aplikacja do multimediów dekoduje adres URL, tworząc intencję Media z informacjami z tego linku, a następnie używa tej intencji do otwarcia ekranu multimediów.

Implementacja obsługująca nowe intencje i nowe dodatki:

  • Udostępnia zaktualizowany format intencji, które mogą być obsługiwane przez Media, zewnętrznym deweloperom, aby mogli wysyłać niezbędne informacje za pomocą intencji do Mediów.

  • Obsługuje intencje z aplikacji innych firm, które zawierają określony element multimedialny lub zapytanie wyszukiwania, a następnie otwiera stronę z żądanymi informacjami w Mediach.

Deweloperzy zewnętrzni są odpowiedzialni za zaktualizowanie aplikacji, aby można było wywołać ją za pomocą intencji URI internetowego i przesłać niezbędne informacje do Media za pomocą intencji.

Wymagania dotyczące aplikacji innych firm

Przykładem jest TmaTrampolineActivity w aplikacji TestMediaApp.

Krok 1

Deweloperzy muszą mieć aktywność podobną do TmaTrampolineActivityTestMediaApp. Aby tworzyć precyzyjne linki, ta aktywność musi mieć w manifeście filtr intencji. Ten filtr intencji powinien zawierać wszystkie adresy URL, które mają być obsługiwane zgodnie z opisem w artykule Dodawanie filtrów intencji dla linków przychodzących.

Zalecamy, aby filtr intencji zawierał schematy i hosty używane przez aplikację na telefon, aby mieć pewność, że precyzyjne linki działają na różnych platformach.

<activity android:name=".automotive.TmaTrampolineActivity"
                  android:exported="true">
            <intent-filter android:label="TmaTrampolineActivity_label">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="app"
                      android:host="com.android.car.media.testmediaapp"/>
            </intent-filter>
        </activity>

Krok 2

W ramach tej czynności aplikacja Media pobiera informacje z linku i tworzy dla niej intencję.

Media obsługuje 2 funkcje. Pierwsza funkcja otwiera element multimediów z określonym elementem multimedialnym, a druga wyświetla wyniki zapytania wyszukiwania. Identyfikator zasobu multimedialnego lub ciąg zapytania wyszukiwania musi być uwzględniony w zawartości dodatkowej intencji.

Informacje o zamiarze

Aby korzystać z tej funkcji, deweloperzy muszą zainstalować najnowszą wersję pakietu Media, aby obsługiwać działanie Intent, ACTION_MEDIA_TEMPLATE_V2. Akcja intencji i dodatkowe informacje o intencji są zawarte w klasie MediaIntentExtras.java. Te dodatkowe elementy można dodać do intencji.

Nazwa dodatkowa Wartość Opis
EXTRA_KEY_MEDIA_COMPONENT Ciąg tekstowy dla komponentu componentName Klucz używany jako pole dodatkowe typu string z parametrem ACTION_MEDIA_TEMPLATE_V2, aby określić usługę MediaBrowserService, w której użytkownik chce uruchomić multimedia. Jeśli nie zostanie określone, zostanie otwarte aktywne źródło multimediów.
EXTRA_KEY_MEDIA_ID Identyfikator multimediów Klucz używany jako pole dodatkowe typu ciąg znaków, w którym ACTION_MEDIA_TEMPLATE_V2 określa element multimedialny, który powinien być wyświetlany w widoku Przeglądaj. Musi być zgodny z identyfikatorami użytymi w interfejsie MediaBrowserServiceCompat API.
EXTRA_KEY_SEARCH_QUERY Zapytanie Klucz używany jako pole dodatkowe typu string z parametrem ACTION_MEDIA_TEMPLATE_V2, aby określić zapytanie wyszukiwania do wysłania do bieżącej usługi MediaBrowserService lub do tej określonej za pomocą parametru EXTRA_KEY_MEDIA_COMPONENT.
EXTRA_KEY_SEARCH_ACTION

Liczba całkowita:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
Klucz używany jako pole dodatkowe typu int z parametrem ACTION_MEDIA_TEMPLATE_V2 do określania działania, które ma wykonać Media po załadowaniu zapytania wyszukiwania.

Wartość to EXTRA_VALUE_NO_SEARCH_ACTION lub EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Tego dodatku należy używać tylko z poleceniem EXTRA_KEY_SEARCH_QUERY.

Jeśli nie zostanie określony, po załadowaniu wyników wyszukiwania nie zostaną podjęte żadne dalsze działania.

Przypadki szczególne

Jeśli do intencji dodano kilka dodatków, np. EXTRA_KEY_MEDIA_IDEXTRA_KEY_SEARCH_QUERY, bieżąca implementacja najpierw obsłuży identyfikator media, a dopiero gdy identyfikator media będzie pusty, Media wykona zapytanie wyszukiwania.

Test

Po zakończeniu integracji aplikacji do obsługi multimediów innej firmy użyj polecenia adb, aby wysłać precyzyjny link. Media z pożądanymi informacjami. Na przykład w przypadku TestMediaApp:

adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"