Radio UI 以獨立應用程式實作。有關如何將無線電 UI 整合到無線電硬體的說明可以在實現無線電中找到。
以下部分介紹如何將 Radio UI 與 Media 集成,為用戶提供無縫體驗,使用戶能夠與媒體來源和廣播進行交互,就像它們是單一應用程式一樣。
媒體來源切換使用者流程
下圖說明了 Radio and Media 的參考實作如何實現應用程式切換使用者流程。
圖1媒體來源切換使用者流程
為了在廣播和媒體中的其他應用程式之間提供無縫轉換, car-media-common
庫定義了可用於啟動媒體來源選擇器的 Android 意圖。在 AOSP 中,此選擇器在應用程式啟動器中實現,提供用於啟動應用程式的相同 UI,但經過過濾以僅顯示媒體來源。
OEM 可以選擇按原樣採用目前的應用程式啟動器實現,或實現自訂的媒體來源選擇器。
選擇器可以以兩種模式運作:
- 正常流量。使用選擇器後,所選來源將顯示在媒體中,以便使用者可以瀏覽其內容。
- 作為一個開關。選擇器用於切換來源,但不向使用者顯示媒體。主頁上的選擇器圖示也是如此。選擇來源後,將向使用者顯示最近的上一個畫面(在本例中為主頁)。
用於在媒體來源之間切換的意圖可以從MediaSource#getSourceSelectorIntent()
方法獲取,該方法接受一個popup
布林值,該布林值返回啟動上述每個流的意圖。
實際意圖在packages/apps/Car/libs/car-media-common/res/values/config.xml
中定義。若要自訂此配置,請使用建置時覆蓋。
更換收音機應用程式
鑑於廣播應用程式實現了媒體瀏覽和媒體會話,廣播將顯示在應用程式啟動器中。為了防止在使用者點擊圖示時啟動媒體,需要兩個元素。無線電必須:
- 進行啟動器活動。
- 被聲明為自訂來源。為此,請將元件名稱新增至
car-media-common/res/values/config.xml
中的custom_media_packages
鍵。
使用者體驗駕駛限制
媒體必須遵守所有使用者體驗駕駛分心限制。為此,Media 必須偵聽CarUXRestrictionManager並實作其所有策略。
- 媒體必須連接到Car庫並取得CarUXRestrictionManager的實例。
- 媒體必須訂閱CarUxRestrictions清單中的更新並按記錄實施。
- 對媒體來說特別重要的是:
-
UX_RESTRICTIONS_NO_SETUP
。在這種情況下,必須停用登入流程。 -
UX_RESTRICTIONS_LIMIT_STRING_LENGTH
。媒體應用程式提供的錯誤訊息和其他文字必須限制在給定的長度內。
-