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