本文旨在說明第三方 (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 | 整數:
|
這個鍵會做為 ACTION_MEDIA_TEMPLATE_V2 的整數額外欄位,用於指定媒體在載入搜尋查詢後執行的動作。
值為 EXTRA_VALUE_NO_SEARCH_ACTION 或 EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH。這個額外資訊只能與 EXTRA_KEY_SEARCH_QUERY 搭配使用。 如果未指定這項額外資訊,系統會在載入搜尋結果後停止動作。 |
特殊情況
如果意圖中同時新增多個額外項目 (例如這個意圖同時包含 EXTRA_KEY_MEDIA_ID
和 EXTRA_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"