對話通知和小工具

Android的11增加了按優先級定制的通知樹蔭對話通知的行為,並安置和警報級別,使對話被標記為重要和談話的具體支持在對話空間推出。

基於這些 Android 11 功能,Android 12 提供了兩個新的對話功能:

  • “設置”中的“最近對話”功能使用戶可以自定義最近對話的通知行為,而無需等待通知。

  • 對話小工具功能使用戶可以輕鬆地在主屏幕上打開聊天,快速查看最近的對話。

本文檔描述了對話通知和小部件的實現、定制和驗證方面。

對話通知概述

機器人11引入了一個新系統原始的,對話,由現有的表示共享對象的快捷方式(這是推出了與Android 9)。

Conversations 原語可以按如下方式使用:

  • 通過共享整個系統的應用程序之間的會話的數據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. 完全支持對話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 中,Conversation Widget 功能建立在 Android 11 中創建的 Conversation 表示的基礎上(如上一節所述),允許應用為 Conversation Widget 中顯示的那些對話提供狀態。

conv_widgets

圖3:顯示對話在對話窗口小部件

Android 12 中的對話小工具功能通過允許用戶在主屏幕上輕鬆打開聊天來促進連接。這些小部件是增強的快捷方式,允許用戶在顯示對話狀態片段的同時有效地返回他們的對話。

合作夥伴必須執行以下操作:

  1. SystemUI 提供的小部件。
  2. 從小部件選擇屏幕添加這些小部件的流程。
  3. 支持小部件調整大小如下:

實現對話小部件時請注意以下依賴項:

  • 合作夥伴不必修改或實施 HAL/驅動程序/內核代碼。
  • 狀態 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. 長按啟動器時,可以通過小部件選擇器為對話添加一個新的對話小部件。有關小部件選擇器 UI,請參見圖 4:

    widget_picker

    圖4:窗口小部件選擇器UI添加一個新的對話窗口小部件

  2. 從所選對話向設備發送通知時,小部件會更新以反映這些通知。

  3. 在應用狀態使用的談話ConversationStatus API,控件反映了這些狀態。

  4. 用戶可以調整小部件的大小,小部件可以根據其當前的啟動器更改其大小。您的小部件佈局必須與不同設備上的不同啟動器大小以及調整小部件的大小配合良好。

要驗證實現,請在通知包中使用以下測試:

  • API 表面的 CTS 測試 (PeopleManagerTest)。

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • GMS 要求的手動測試 - 對話。