Integracja precyzyjnych linków z aplikacjami do multimediów

W tym dokumencie opisujemy, jak deweloperzy aplikacji innych firm mogą dodawać linki bezpośrednie do aplikacji multimedialnych na AAOS. Precyzyjne linki do multimediów umożliwiają otwieranie aplikacji multimedialnych 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 precyzyjny link zostanie otwarty w AAOS, otworzy się aplikacja multimedialna, 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ługująca nowe intencje i nowe dodatki:

  • Udostępnia zaktualizowany format intencji, które mogą być obsługiwane przez deweloperów zewnętrznych, aby mogli oni przesyłać niezbędne informacje do aplikacji Media.

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

Deweloperzy zewnętrzni są odpowiedzialni za aktualizowanie aplikacji, aby można było ją wywoływać za pomocą intencji URI w internecie i przesyłać niezbędne informacje do Media za pomocą intencji.

Wymagania dotyczące aplikacji innych firm

TmaTrampolineActivity w aplikacji TestMediaApp jest podany jako przykład.

Krok 1

Deweloperzy muszą mieć aktywność podobną do TmaTrampolineActivityTestMediaApp. 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 artykule Dodawanie filtrów intencji dla linków przychodzących.

Sugerujemy, aby filtr intencji zawierał schematy i hosty, których używa aplikacja w wersji na telefony, 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 ramach tej aktywności aplikacja Media pobiera informacje z linku i tworzy intencję dotyczącą multimediów.

Media obsługuje 2 funkcje. Pierwsza funkcja służy do otwierania elementu multimedialnego za pomocą określonego elementu multimedialnego, a druga – do wyświetlania wyników zapytania. Identyfikator elementu multimedialnego lub ciąg zapytania musi być uwzględniony w dodatkowych informacjach intencji.

Informacje o intencji

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

Dodatkowa nazwa Wartość Opis
EXTRA_KEY_MEDIA_COMPONENT Ciąg znaków dla elementu componentName Klucz używany jako dodatkowe pole tekstowe z ACTION_MEDIA_TEMPLATE_V2 do określania MediaBrowserService, w której użytkownik chce rozpocząć odtwarzanie multimediów. Jeśli nie podasz źródła, otworzy się aktywne źródło multimediów.
EXTRA_KEY_MEDIA_ID Identyfikator multimediów Klucz używany jako dodatkowe pole tekstowe z ACTION_MEDIA_TEMPLATE_V2 określające element multimedialny, 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 dodatkowe pole tekstowe z ACTION_MEDIA_TEMPLATE_V2 do określania zapytania wyszukiwania, które ma być wysyłane do bieżącej usługi MediaBrowserService lub do usługi określonej 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 dodatkowe pole typu int z ACTION_MEDIA_TEMPLATE_V2 do określania działania, które ma wykonać element multimedialny po załadowaniu zapytania.

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

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

Przypadki szczególne

Jeśli do intencji dodano kilka dodatków, np. w tej intencji znajdują się zarówno EXTRA_KEY_MEDIA_ID, jak i EXTRA_KEY_SEARCH_QUERY, bieżąca implementacja najpierw obsługuje identyfikator multimediów, a dopiero gdy jest on pusty, Media uruchamiają zapytanie.

Test

Po zakończeniu integracji aplikacji mediów innej firmy użyj polecenia adb, aby wysłać precyzyjny link. Otworzy się plik z odpowiednimi 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"