將深層連結整合至媒體應用程式

本文旨在說明第三方 (3P) 應用程式開發人員如何為 AAOS 媒體應用程式新增深層連結。媒體深層連結可讓您透過深層連結開啟 AAOS Media 應用程式,就像在行動裝置上開啟應用程式一樣。

支援的版本

如要取得最新的支援版本,請參閱最新的建構構件

  • CarMediaApp.apk
  • TestMediaApp.apk

運作方式

在 AAOS 上開啟深層連結時,會開啟處理特定配置的媒體應用程式。媒體應用程式接著解碼網址,使用該連結中的資訊建立媒體意圖,然後使用該意圖開啟媒體畫面。

支援新意圖和新額外項目的實作方式:

  • 提供更新版意圖格式,可由媒體傳送給第三方開發人員,以便他們透過意圖傳送必要資訊給媒體。

  • 處理來自第三方應用程式 (含有特定媒體項目或搜尋查詢) 的意圖,然後在媒體中開啟含有要求資訊的頁面。

第三方開發人員必須負責更新應用程式,讓應用程式能夠透過網頁 URI 意圖叫用,並透過意圖將必要資訊傳送至媒體。

第三方應用程式規定

TestMediaApp 應用程式中的 TmaTrampolineActivity 為範例。

步驟 1

開發人員必須擁有類似 TmaTrampolineActivity 的活動,才能在 TestMediaApp 中執行。如要建立深層連結,此活動需要在資訊清單中設定意圖篩選器。這個意圖篩選器應包含所有要處理的網址,如「新增意圖篩選器以處理傳入連結」一節所述。

建議您在意圖篩選器中加入手機版應用程式使用的配置和主機,確保深層連結可跨平台運作。

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

步驟 2

在這個活動中,Media 應用程式會從連結擷取資訊,並建立對 Media 的意圖。

Media 支援兩種功能。第一個函式可開啟含有特定媒體項目的媒體項目,第二個函式則可顯示搜尋查詢的結果。意圖額外資料必須包含媒體項目 ID 或搜尋查詢字串。

意圖資訊

如要使用這項功能,開發人員必須安裝最新版本的 Media,以支援 Intent 動作 ACTION_MEDIA_TEMPLATE_V2。意圖動作和下列意圖額外項目已納入 MediaIntentExtras.java 類別。這些額外資料可新增至意圖。

額外名稱 說明
EXTRA_KEY_MEDIA_COMPONENT 字串,用於 componentName 用於指定使用者要啟動媒體的 MediaBrowserService 時,以字串額外欄位形式使用此鍵。如果未指定,系統會開啟目前的媒體來源。
EXTRA_KEY_MEDIA_ID 媒體 ID 此鍵值會做為字串額外欄位使用,並搭配 ACTION_MEDIA_TEMPLATE_V2 指定應在「瀏覽」檢視畫面中顯示的媒體項目。必須與 MediaBrowserServiceCompat API 中使用的 ID 相符。
EXTRA_KEY_SEARCH_QUERY 搜尋查詢 用於指定要傳送至目前 MediaBrowserService 或使用 EXTRA_KEY_MEDIA_COMPONENT 指定的 MediaBrowserService 的搜尋查詢的字串額外欄位
EXTRA_KEY_SEARCH_ACTION

整數:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
此鍵值會做為 int 額外欄位使用,並搭配 ACTION_MEDIA_TEMPLATE_V2,指定媒體在載入搜尋查詢後要執行的動作。

值為 EXTRA_VALUE_NO_SEARCH_ACTION 或 EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH 這個額外項目應只與 EXTRA_KEY_SEARCH_QUERY 搭配使用。

如果未指定這項額外資訊,系統就不會在載入搜尋結果後採取進一步行動。

特殊情況

如果有幾個額外項目一起新增至意圖,例如意圖中同時包含 EXTRA_KEY_MEDIA_IDEXTRA_KEY_SEARCH_QUERY,目前的實作會先處理媒體 ID,只有在媒體 ID 為空白時,Media 才會執行搜尋查詢。

測試

第三方媒體應用程式整合完成後,請使用 adb 指令傳送深層連結。媒體會開啟並顯示所需資訊。例如,以下是 TestMediaApp 的命令:

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