Android 11 新增了支援功能,可依據優先順序和警示層級,自訂對話通知在通知欄中的行為和位置,讓對話標示為重要,並在對話空間中啟動對話專屬的對話框。
Android 12 以上述 Android 11 功能為基礎,提供兩項新的對話功能:
「設定」中的「近期對話」功能可讓使用者自訂近期對話的通知行為,而不必等候通知。
對話小工具功能可讓使用者輕鬆在主畫面上開啟即時通訊,快速查看最近的對話。
本文件說明對話通知和小工具的實作、自訂和驗證層面。
對話通知總覽
Android 11 推出了新的系統原始元素「對話」,由現有的分享捷徑物件 (在 Android 9 推出) 代表。
對話基本的使用方式如下:
透過Sharesheet (已在 Android 10 中實作),在系統中跨應用程式分享對話內容資料。
如要參與通知遮罩頂端的新對話空間 (在 Android 11 中實作)。請參閱圖 2。
用於建立對話小工具 (已在 Android 12 中實作)。
圖 1:透過通知匣以對話框形式啟動的通知
圖 2:位於通知欄頂端的對話室
除了連結代表對話的捷徑,通知還會使用 MessagingStyle,在「對話」聊天室中加入對話的最後一則訊息。
GMS 合作夥伴必須實作下列項目:
- 新的「對話」聊天室會顯示在通知面板頂端的獨立區段。
- 允許並支援對話專屬氣泡模式的通知樣式。
實作對話的合作夥伴也必須實作重要對話。不過,對話功能的實作方式可與類似性質的原始設備製造商 (OEM) 概念保持一致。總體而言,合作夥伴可自由將對話區塊與特定的系統 UI 對齊。合作夥伴不必修改或實作 HAL/驅動程式/核心程式碼/擴充功能。
請參閱 AOSP 中 SystemUI 和 PeopleService 部分的以下參考實作項目:
frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/
驗證
為確保功能的版本能正常運作,請驗證下列項目:
完全支援 Conversation API 的應用程式會在新的部分中顯示通知,並可依對話自訂這些通知,而非使用一般 NotificationChannel。
對話特定泡泡運作正常。
如要驗證實作方式,請在通知套件中使用下列測試:
CTS 測試。
cts/tests/app/src/android/app/cts/NotificationManagerTest.java
CTS 驗證工具測試。
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
對話小工具總覽
在 Android 12 中,對話小工具功能會在 Android 11 中建立的對話表示法 (如前一個章節所述) 的基礎上,允許應用程式為對話小工具中顯示的對話提供狀態。
圖 3:顯示在對話小工具中的對話
Android 12 的對話小工具功能可讓使用者在主畫面上輕鬆開啟即時通訊,藉此促進連線。這些小工具是進階版捷徑,可讓使用者快速回到對話,並顯示對話狀態的文字片段。
合作夥伴必須實作下列項目:
- SystemUI 提供的小工具。
- 從小工具挑選畫面新增這些小工具的流程。
- 支援調整小工具大小,如下:
- 當使用者變更版面配置大小或旋轉為橫向時,使用
onAppWidgetOptionsChanged()
可將版面配置變更為更大尺寸的版面配置。 - 使用
maxResizeHeight
、maxResizeWidth
、minWidth
、minHeight
、minResizeWidth
、minResizeHeight
正確限制小工具大小變更。
- 當使用者變更版面配置大小或旋轉為橫向時,使用
實作對話方塊時,請注意下列依附元件:
- 合作夥伴不必修改或導入 HAL/驅動程式/核心程式碼。
- 實作時,請使用 Status API,讓應用程式可在對話和相關小工具中新增狀態或可用性資訊。
- 新裝置實作和升級實作程序皆相同。
- 對話小工具功能會依賴 Android 12 推出的新功能,該功能會快取最近看到的對話 (例如來自通知的對話)。後者可讓使用者將對話加入主畫面。
請參閱 SystemUI 和 Launcher3 檔案中的以下參考實作項目:
frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/
自訂
對話方塊功能無法開啟或關閉,但只要符合 GMS 規定,合作夥伴就能變更小工具範本的版面配置。
驗證
為確保您的功能版本可正常運作,請確認下列事項:
長按啟動器,即可透過小工具挑選器新增對話的小工具。請參閱圖 4 的小工具挑選器 UI:
圖 4:小工具挑選器 UI,新增對話小工具
從所選對話傳送通知到裝置時,小工具會更新以反映這些通知。
使用
ConversationStatus
API 將狀態套用至該對話,小工具就會顯示這些狀態。使用者可以調整小工具大小,而小工具也可以根據目前的啟動器變更大小。小工具版面配置必須能配合不同裝置上的不同啟動器大小,以及小工具的大小調整而順利運作。
如要驗證實作結果,請在通知套件中使用下列測試:
針對 API 途徑執行 CTS 測試 (PeopleManagerTest)。
cts/tests/app/src/android/app/cts/NotificationManagerTest.java
手動測試 GMS 規定 - 對話。