Mengintegrasikan deep link ke aplikasi Media

Dokumen ini bertujuan untuk menjelaskan cara developer aplikasi pihak ketiga (3P) dapat menambahkan deep link ke aplikasi media AAOS. Deep link media memungkinkan Anda membuka aplikasi Media AAOS melalui deep link dengan cara yang sama seperti di perangkat seluler.

Versi yang didukung

Untuk mendapatkan versi terbaru yang didukung, lihat Artefak Build terbaru.

  • CarMediaApp.apk
  • TestMediaApp.apk

Cara kerjanya

Saat deep link dibuka di AAOS, aplikasi media yang menangani skema tertentu akan terbuka. Aplikasi media kemudian mendekode URL, membuat intent Media dengan informasi dalam link tersebut, lalu menggunakan intent tersebut untuk membuka layar media.

Implementasi untuk mendukung intent baru dan ekstra baru:

  • Menyediakan format terbaru dari maksud (intent) yang dapat ditangani oleh Media kepada developer pihak ketiga sehingga mereka dapat mengirimkan informasi yang diperlukan melalui maksud (intent) ke Media.

  • Menangani intent dari aplikasi pihak ketiga yang berisi item media tertentu atau kueri penelusuran, lalu membuka halaman dengan informasi yang diminta di Media.

Developer pihak ketiga bertanggung jawab untuk mengupdate aplikasi mereka agar aplikasi dapat dipanggil oleh intent URI web dan mengirim informasi yang diperlukan ke Media melalui intent.

Persyaratan untuk aplikasi pihak ketiga

TmaTrampolineActivity di aplikasi TestMediaApp disediakan sebagai contoh.

Langkah 1

Developer harus memiliki aktivitas yang mirip dengan TmaTrampolineActivity di TestMediaApp. Untuk penautan mendalam, aktivitas ini memerlukan filter intent dalam manifes. Filter intent ini harus menyertakan semua URL yang akan ditangani seperti yang dijelaskan dalam Menambahkan filter intent untuk link masuk.

Sebaiknya filter intent menyertakan skema dan host yang digunakan aplikasi versi ponsel untuk memastikan deep link berfungsi di seluruh platform.

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

Langkah 2

Dalam aktivitas ini, aplikasi Media mengambil informasi dari link dan membuat intent ke Media.

Media mendukung dua fungsi. Fungsi pertama adalah membuka item media dengan item media tertentu dan fungsi kedua adalah menampilkan hasil kueri penelusuran. ID item media atau string kueri penelusuran harus disertakan dalam ekstra intent.

Informasi niat

Untuk menggunakan fitur ini, developer harus menginstal versi terbaru Media untuk mendukung tindakan Intent, ACTION_MEDIA_TEMPLATE_V2. Tindakan Intent, dan ekstra intent berikut, disertakan dalam class MediaIntentExtras.java. Tambahan ini dapat ditambahkan ke intent.

Nama ekstra Nilai Deskripsi
EXTRA_KEY_MEDIA_COMPONENT String untuk componentName Kunci yang digunakan sebagai kolom tambahan string dengan ACTION_MEDIA_TEMPLATE_V2 untuk menentukan MediaBrowserService tempat pengguna ingin memulai media. Jika tidak ditentukan, sumber media aktif akan dibuka.
EXTRA_KEY_MEDIA_ID ID Media Kunci yang digunakan sebagai kolom tambahan string dengan ACTION_MEDIA_TEMPLATE_V2 menentukan item media yang harus ditampilkan di tampilan Browse. Harus cocok dengan ID yang digunakan di MediaBrowserServiceCompat API.
EXTRA_KEY_SEARCH_QUERY Kueri penelusuran Kunci yang digunakan sebagai kolom tambahan string dengan ACTION_MEDIA_TEMPLATE_V2 untuk menentukan kueri penelusuran yang akan dikirim ke MediaBrowserService saat ini atau yang ditentukan dengan EXTRA_KEY_MEDIA_COMPONENT
EXTRA_KEY_SEARCH_ACTION

Bilangan bulat:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
Kunci yang digunakan sebagai kolom tambahan int dengan ACTION_MEDIA_TEMPLATE_V2 untuk menentukan tindakan yang akan dilakukan Media setelah kueri penelusuran dimuat.

Nilainya adalah salah satu dari EXTRA_VALUE_NO_SEARCH_ACTION atau EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Ekstra ini hanya boleh digunakan dengan EXTRA_KEY_SEARCH_QUERY.

Jika ekstra ini tidak ditentukan, tidak ada tindakan lebih lanjut yang dilakukan setelah hasil penelusuran dimuat.

Kasus tertentu

Jika beberapa ekstra ditambahkan ke intent secara bersamaan, seperti EXTRA_KEY_MEDIA_ID dan EXTRA_KEY_SEARCH_QUERY disertakan dalam intent ini, implementasi saat ini menangani ID media terlebih dahulu, dan hanya saat ID media kosong, Media menjalankan kueri penelusuran.

Tes

Setelah integrasi aplikasi media pihak ketiga selesai, gunakan perintah adb untuk mengirim deep link. Media akan terbuka dengan informasi yang diinginkan. Misalnya, perintah ini untuk TestMediaApp:

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