Integracja precyzyjnych linków z aplikacjami do multimediów

Ten dokument opisuje, jak deweloperzy aplikacji multimedialnych innych firm mogą dodawać precyzyjne linki do aplikacji multimedialnych na AAOS. Precyzyjne linki do multimediów umożliwiają otwieranie aplikacji multimedialnych na AAOS za pomocą precyzyjnych linków w taki sam sposób jak na urządzeniu mobilnym.

Obsługiwane wersje

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

  • CarMediaApp.apk
  • TestMediaApp.apk

Jak to działa

Gdy na AAOS otworzy się precyzyjny link, otworzy się aplikacja do multimediów, która obsługuje dany schemat. Aplikacja multimedialna dekoduje adres URL, tworząc intencję multimedialną z informacjami zawartymi w tym linku, a następnie używa tej intencji do otwarcia ekranu multimediów.

Implementacja obsługi nowych intencji i nowych dodatków:

  • Udostępnia deweloperom innych firm zaktualizowany format intencji, które mogą być obsługiwane przez Multimedia, aby mogli oni wysyłać niezbędne informacje do Multimediów za pomocą intencji.

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

Deweloperzy innych firm są odpowiedzialni za aktualizowanie swoich aplikacji, aby można było je wywoływać za pomocą intencji URI sieci i wysyłać niezbędne informacje do Multimediów za pomocą intencji.

Wymagania dotyczące aplikacji innych firm

TmaTrampolineActivity w aplikacji TestMediaApp jest podana jako przykład.

Krok 1

Deweloperzy muszą mieć działanie podobne do TmaTrampolineActivity w TestMediaApp. Aby można było używać precyzyjnych linków, to działanie musi mieć filtr intencji w manifeście. Ten filtr intencji powinien zawierać wszystkie adresy URL, które mają być obsługiwane zgodnie z opisem w sekcji Dodawanie filtrów intencji dla linków przychodzących.

Zalecamy, aby filtr intencji zawierał schematy i hosty używane przez aplikację w wersji na telefon, aby precyzyjne linki działały 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 tym działaniu aplikacja do multimediów pobiera informacje z linku i tworzy intencję dla Multimediów.

Multimedia obsługują 2 funkcje. Pierwsza funkcja polega na otwieraniu elementu multimedialnego za pomocą konkretnego elementu multimedialnego, a druga – na wyświetlaniu wyników zapytania. Identyfikator elementu multimedialnego lub ciąg zapytania musi być zawarty w dodatku do intencji.

Informacje o intencji

Aby korzystać z tej funkcji, deweloperzy muszą zainstalować najnowszą wersję Multimediów, która obsługuje działanie intencji ACTION_MEDIA_TEMPLATE_V2. Działanie intencji i te dodatki do intencji są zawarte w klasie MediaIntentExtras.java. Te dodatki można dodać do intencji.

Nazwa dodatku Wartość Opis
EXTRA_KEY_MEDIA_COMPONENT Ciąg znaków dla componentName Klucz używany jako pole dodatkowe ciągu znaków z ACTION_MEDIA_TEMPLATE_V2 do określania MediaBrowserService, w którym użytkownik chce uruchomić multimedia. Jeśli nie zostanie określony, otworzy się aktywne źródło multimediów.
EXTRA_KEY_MEDIA_ID Identyfikator multimediów Klucz używany jako pole dodatkowe ciągu znaków z ACTION_MEDIA_TEMPLATE_V2 do określania elementu multimedialnego, który ma być wyświetlany w widoku Przeglądaj. Musi odpowiadać identyfikatorom używanym w interfejsie MediaBrowserServiceCompat API.
EXTRA_KEY_SEARCH_QUERY Zapytanie Klucz używany jako pole dodatkowe ciągu znaków z ACTION_MEDIA_TEMPLATE_V2 do określania zapytania, które ma być wysłane do bieżącego MediaBrowserService lub do MediaBrowserService określonego za pomocą 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 liczby całkowitej z ACTION_MEDIA_TEMPLATE_V2 do określania działania, które Multimedia mają wykonać po wczytaniu zapytania.

Wartość to EXTRA_VALUE_NO_SEARCH_ACTION lub EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Ten dodatek powinien być używany tylko z EXTRA_KEY_SEARCH_QUERY.

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

Przypadki szczególne

Jeśli do intencji zostanie dodanych kilka dodatków, np. EXTRA_KEY_MEDIA_ID i EXTRA_KEY_SEARCH_QUERY, bieżąca implementacja najpierw obsługuje identyfikator multimediów, a dopiero gdy jest on pusty, Multimedia uruchamiają zapytanie.

Test

Po zakończeniu integracji aplikacji do multimediów innej firmy użyj polecenia adb, aby wysłać precyzyjny link. Multimedia otworzą się z żądanymi informacjami. Na przykład to polecenie dla TestMediaApp:

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