自訂參考應用程式

本節詳細說明如何自訂控制中心參考應用程式和使用者介面。

使用者流程和使用者介面

本節說明使用者流程,以及如何啟動控制中心。

啟動控制中心

你可以透過應用程式啟動器系統 UI 導覽列上的圖示啟動控制中心。只有在已啟用背景可見使用者 (詳情請參閱 UserHandleAware) 的建構版本中,才會顯示這個圖示。

你隨時可以查看控制中心。控制中心由半透明視窗和透明背景組成,因此可以顯示在任何其他應用程式上,包括正在播放的影片和媒體。在應用程式的「到達網頁」中:

  • 螢幕排列方式和本機遠端螢幕的使用方式。
  • 畫面上會顯示媒體和媒體控制選項。
  • 每個畫面都會詳細介紹媒體 (和其他) 控制選項。

螢幕的排列方式代表車輛中的螢幕版面配置。每個畫面都是 DevicePickerScreen。如要自訂每個畫面的位置和大小,請使用執行階段資源重疊 (RRO)。詳情請參閱「在執行階段變更應用程式資源的值」。

控制中心開啟時,每個螢幕都會顯示不同的畫面,並以亮色醒目邊框標示。這是「本機」畫面,也就是目前使用的螢幕。

其他每個畫面都是「遙控器」畫面,代表車輛中的不同螢幕,您可以根據 Fragment 中的畫面排列方式識別這些畫面。如要計算車輛中設定的居住者區域總數,請使用 CarOccupantZoneManager#getAllOccupantZones

每個畫面都會定義自訂屬性 controlcenter:occupantZoneId,將資料與對應的居住者區域建立關聯。在特定螢幕上播放媒體應用程式時,對應的螢幕會顯示媒體專輯封面。畫面下方會顯示「播放」 (或「暫停」) 按鈕。

如果使用中的媒體應用程式是可見的工作 (在控制中心後方開啟),「播放」按鈕旁的「分享」按鈕會啟用,開啟「鏡像輸出」頁面分享功能可分享媒體應用程式畫面,最適合用於含有影片的媒體應用程式。

螢幕元素

輕觸螢幕即可查看螢幕上播放媒體的詳細資料。 這就是「詳細資料」畫面。這個檢視畫面會顯示媒體中繼資料,例如標題、播放進度和藝人。這些按鈕可額外控制乘員區域。

  • 「音訊輸出」會顯示正在播放媒體的音訊輸出裝置,例如車內喇叭或耳機。「音訊輸出」會開啟對話方塊,方便你變更音訊輸出和媒體音量。

  • 「Display Input Lock」會鎖定螢幕輸入,這項操作無法套用至駕駛人螢幕。

  • 「螢幕電源」會關閉螢幕電源。這項操作無法套用至駕駛人螢幕。

如果媒體是控制中心應用程式後方的可見工作,則「詳細資料」檢視畫面會顯示「分享」按鈕。輕觸「分享」按鈕會開啟「鏡像輸出」頁面:

寄件者 (頂端) 和收件者 (底部) 之間的螢幕鏡像和共同觀看歷程
圖 2. 鏡像頁面和共同觀看歷程,分別位於傳送者 (頂端) 和接收者 (底部)。

開始共同觀看工作階段

鏡像頁面到達網頁類似,都是使用 RRO。

如要新增畫面到共同觀看活動,請輕觸畫面,然後輕觸「完成」

系統會開啟 Mirroring Activity,其中會顯示共用應用程式,並提供浮動的暫時性控制選項,讓您離開共同觀看工作階段,或重新進入鏡像頁面來新增或移除參與者。

鏡像投放活動,顯示共用應用程式和浮動控制選項,方便管理共同觀看活動。
圖 3. 鏡像活動,並顯示暫時性的浮動控制項。

摘要

以下是控制中心各個頁面的摘要。

流程圖:顯示「控制中心」應用程式中的不同頁面和轉換。
圖 4. 控制中心頁面。

自訂規範

控制中心使用 Car UI 程式庫進行自訂,並提供可直接採用或根據這些限制條件修改的基本主題和結構。

自訂 說明
SHOULD

透過 RRO 調整整體主題和樣式,例如:

  • 調色盤
  • 尺寸
  • 文字外觀
  • 對話方塊外觀
  • 可繪項目
  • 設定值
5 月 修改控制中心的頂層 UI 結構。

控制中心屬於系統應用程式套件,包括媒體、通知中心和應用程式啟動器。這些應用程式共用在 AOSP 結構不同層級中定義的樣式和資產:

framework/base/core
所有 Android 基本樣式都會在此定義。具體來說,所有系統應用程式主題都是以 Theme.DeviceDefault 為基礎,這個主題專供原始設備製造商 (OEM) 使用,可自訂裝置預設外觀。

packages/services/Car/car_product/overlay
這個資料夾包含 Theme.DeviceDefault 的覆寫項目,用於產生 Android Automotive 的 AOSP 外觀與風格。原始設備製造商 (OEM) 可以選擇排除這個疊加層,改用自己的疊加層。

packages/apps/Car/libs/car-ui-lib
這個程式庫定義了系統應用程式和專為自訂設計的未綁定應用程式共用的 AAOS 元件和資源。詳情請參閱 Car UI 程式庫整合指南

packages/apps/Car/libs/car-apps-common
AOSP 提供的系統應用程式共用常見的顏色和樣式。您可以透過疊加層自訂這些元素 (類似於 packages/services/Car/car_product/overlay)。

packages/apps/Car/MultiDisplay/ControlCenter
所有系統應用程式都有主題,該主題會從 Theme.CarUi 延伸,並在 car-ui-lib 中定義。ControlCenterActivity 使用自訂 Theme.Transparent,可擴充 Theme.CarUi

為支援流程 (例如需要顯示鏡像工作畫面才能共同觀看),控制中心會使用半透明視窗和透明背景,不會將應用程式傳送至背景或傳送 Lifecycle events

<style name="Theme.Transparent" parent="@style/Theme.CarUi.NoToolbar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@color/transparent</item>
</style>