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

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

支援的版本

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

  • CarMediaApp.apk
  • TestMediaApp.apk

運作方式

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

實作支援新意圖和新額外內容:

  • 為第三方開發人員提供可由媒體處理的意圖更新格式,方便他們透過意圖將必要資訊傳送至媒體。

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

第三方開發人員有責任更新應用程式,讓應用程式可由網頁 URI Intent 叫用,並透過 Intent 將必要資訊傳送至 Media。

第三方應用程式規定

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

在本活動中,媒體應用程式會從連結擷取資訊,並建立媒體意圖。

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

意圖資訊

如要使用這項功能,開發人員必須安裝最新版的媒體,才能支援 Intent 動作 ACTION_MEDIA_TEMPLATE_V2。Intent 動作和下列意圖額外資訊會包含在 MediaIntentExtras.java 類別中。這些額外資料可以新增至意圖。

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

整數:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1:EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
這個鍵會做為 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 為空時,媒體才會執行搜尋查詢。

測試

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

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