對話通知和小工具

Android 11 新增了支援功能,可依據優先順序和警示層級,自訂對話通知在通知欄中的行為和位置,讓對話標示為重要,並在對話空間中啟動對話專屬的對話框

Android 12 以上述 Android 11 功能為基礎,提供兩項新的對話功能:

  • 「設定」中的「近期對話」功能可讓使用者自訂近期對話的通知行為,而不必等候通知。

  • 對話小工具功能可讓使用者輕鬆在主畫面上開啟即時通訊,快速查看最近的對話。

本文件說明對話通知和小工具的實作、自訂和驗證層面。

對話通知總覽

Android 11 推出了新的系統原始元素「對話」,由現有的分享捷徑物件 (在 Android 9 推出) 代表。

對話基本的使用方式如下:

  • 透過Sharesheet (已在 Android 10 中實作),在系統中跨應用程式分享對話內容資料。

  • 行車模式的氣泡(Android 11 中的捷徑)。請參閱圖 1

  • 如要參與通知遮罩頂端的新對話空間 (在 Android 11 中實作)。請參閱圖 2

  • 用於建立對話小工具 (已在 Android 12 中實作)。

    conv_bubbles

    圖 1:透過通知匣以對話框形式啟動的通知

    conv_notification

    圖 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/

驗證

為確保功能的版本能正常運作,請驗證下列項目:

  1. 完全支援 Conversation API 的應用程式會在新的部分中顯示通知,並可依對話自訂這些通知,而非使用一般 NotificationChannel

  2. 對話特定泡泡運作正常。

如要驗證實作方式,請在通知套件中使用下列測試:

  • CTS 測試。

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • CTS 驗證工具測試。

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

對話小工具總覽

在 Android 12 中,對話小工具功能會在 Android 11 中建立的對話表示法 (如前一個章節所述) 的基礎上,允許應用程式為對話小工具中顯示的對話提供狀態。

conv_widgets

圖 3:顯示在對話小工具中的對話

Android 12 的對話小工具功能可讓使用者在主畫面上輕鬆開啟即時通訊,藉此促進連線。這些小工具是進階版捷徑,可讓使用者快速回到對話,並顯示對話狀態的文字片段。

合作夥伴必須實作下列項目:

  1. SystemUI 提供的小工具。
  2. 從小工具挑選畫面新增這些小工具的流程。
  3. 支援調整小工具大小,如下:

實作對話方塊時,請注意下列依附元件:

  • 合作夥伴不必修改或導入 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 規定,合作夥伴就能變更小工具範本的版面配置。

驗證

為確保您的功能版本可正常運作,請確認下列事項:

  1. 長按啟動器,即可透過小工具挑選器新增對話的小工具。請參閱圖 4 的小工具挑選器 UI:

    小工具挑選器

    圖 4:小工具挑選器 UI,新增對話小工具

  2. 從所選對話傳送通知到裝置時,小工具會更新以反映這些通知。

  3. 使用 ConversationStatus API 將狀態套用至該對話,小工具就會顯示這些狀態。

  4. 使用者可以調整小工具大小,而小工具也可以根據目前的啟動器變更大小。小工具版面配置必須能配合不同裝置上的不同啟動器大小,以及小工具的大小調整而順利運作。

如要驗證實作結果,請在通知套件中使用下列測試:

  • 針對 API 途徑執行 CTS 測試 (PeopleManagerTest)。

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • 手動測試 GMS 規定 - 對話。