Gesprächsbenachrichtigungen und Widgets

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Android 11 fügt Unterstützung für die Anpassung des Verhaltens und der Platzierung von Konversationsbenachrichtigungen in der Benachrichtigungsleiste nach Priorität und Alarmstufe hinzu, sodass Konversationen als wichtig markiert und konversationsspezifische Sprechblasen im Konversationsbereich gestartet werden können.

Aufbauend auf diesen Android 11-Funktionen bietet Android 12 zwei neue Konversationsfunktionen:

  • Mit der Funktion „Letzte Unterhaltungen“ in den Einstellungen können Benutzer das Benachrichtigungsverhalten für die letzten Unterhaltungen anpassen, ohne auf eine Benachrichtigung warten zu müssen.

  • Die Konversations-Widget-Funktion ermöglicht Benutzern das einfache Öffnen von Chats auf dem Startbildschirm und bietet einen schnellen Überblick über die letzten Konversationen.

Dieses Dokument beschreibt die Implementierungs-, Anpassungs- und Validierungsaspekte von Konversationsbenachrichtigungen und Widgets.

Übersicht über Konversationsbenachrichtigungen

Android 11 führt ein neues Systemprimitiv ein, die Konversation, die durch das vorhandene Freigabeverknüpfungsobjekt dargestellt wird (das mit Android 9 eingeführt wurde).

Das Primitiv Conversations kann wie folgt verwendet werden:

  • So teilen Sie Konversationsdaten zwischen den Apps im gesamten System über Sharesheet (bereits in Android 10).

  • Zum Fahren von Blasen ( Shortcuts in Android 11). Siehe Abbildung 1 .

  • Zur Teilnahme am neuen Konversationsbereich über der Benachrichtigungsleiste (implementiert in Android 11). Siehe Abbildung 2 .

  • Zum Erstellen von Konversations-Widgets (implementiert in Android 12).

    conv_bubbles

    Abbildung 1: Benachrichtigung, die als Blase aus der Benachrichtigungsleiste gestartet wird

    conv_notification

    Abbildung 2: Gesprächsbereich über dem Benachrichtigungsfenster

Neben der Verknüpfung mit der Verknüpfung, die die Konversation darstellt, verwendet die Benachrichtigung auch MessagingStyle , um die letzte Nachricht der Konversation in den Konversationsbereich aufzunehmen.

GMS-Partner müssen Folgendes implementieren:

  • Ein neuer Konversationsbereich als separater Abschnitt über der Benachrichtigungsleiste.
  • Ein Benachrichtigungsstil, der das konversationsspezifische Blasenmuster zulässt und unterstützt.

Partner, die Konversationen implementieren, müssen auch wichtige Konversationen implementieren. Die Implementierung von Conversations kann jedoch an OEM-Konzepten ähnlicher Art ausgerichtet werden. Insgesamt haben Partner die Freiheit, den Konversationsabschnitt an ihrer spezifischen System-Benutzeroberfläche auszurichten. Der Partner muss HAL/Treiber/Kernelcode/Erweiterungen nicht modifizieren oder implementieren.

Siehe die folgende Referenzimplementierung in den Abschnitten „SystemUI“ und „PeopleService“ in AOSP:

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/

Validierung

Um sicherzustellen, dass Ihre Version der Funktion wie beabsichtigt funktioniert, überprüfen Sie Folgendes:

  1. Apps, die die Konversations-API vollständig unterstützen, sehen ihre Benachrichtigungen im neuen Abschnitt und können diese Benachrichtigungen nach Konversation anstatt nach dem generischen NotificationChannel anpassen.

  2. Gesprächsspezifische Blasen funktionieren.

Verwenden Sie zur Validierung der Implementierung die folgenden Tests im Benachrichtigungspaket:

  • CTS-Tests.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • CTS Verifier-Tests.

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

Übersicht über Konversations-Widgets

In Android 12 baut die Konversations-Widget-Funktion auf den Konversationsdarstellungen auf, die in Android 11 erstellt wurden (wie im vorherigen Abschnitt beschrieben), indem Apps ermöglicht wird, den Status für die Konversationen bereitzustellen, die in Konversations-Widgets angezeigt werden.

conv_widgets

Abbildung 3: Konversationen, die in Konversations-Widgets angezeigt werden

Die Conversation Widget-Funktion in Android 12 fördert die Verbindung, indem sie es Benutzern ermöglicht, Chats einfach auf dem Startbildschirm zu öffnen. Die Widgets sind verbesserte Verknüpfungen, die es Benutzern ermöglichen, effizient zu ihren Gesprächen zurückzukehren, während sie Ausschnitte des Gesprächsstatus anzeigen.

Der Partner muss Folgendes implementieren:

  1. Ein von SystemUI bereitgestelltes Widget.
  2. Ein Ablauf zum Hinzufügen dieser Widgets aus dem Widget-Auswahlbildschirm.
  3. Unterstützung für die Größenanpassung von Widgets wie folgt:

Beachten Sie bei der Implementierung von Konversations-Widgets die folgenden Abhängigkeiten:

  • Der Partner muss HAL/Treiber/Kernel-Code nicht ändern oder implementieren.
  • Für die Implementierung wird die Status-API verwendet, die es Apps ermöglicht, Status- oder Verfügbarkeitsinformationen zu einer Konversation und dem zugehörigen Widget hinzuzufügen.
  • Der Prozess ist sowohl bei der Implementierung neuer Geräte als auch bei der Upgrade-Implementierung derselbe.
  • Die Konversations-Widgets-Funktion ist von einer neuen Funktion abhängig, die in Android 12 eingeführt wird und kürzlich gesehene Konversationen zwischenspeichert (z. B. aus Benachrichtigungen). Diese letztere Funktion ermöglicht es, die Liste der Konversationen zu erweitern, die ein Benutzer potenziell zu seinem Startbildschirm hinzufügen könnte.

Siehe die folgende Referenzimplementierung in SystemUI- und Launcher3-Dateien:

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/

Anpassung

Die Funktion „Unterhaltungs-Widgets“ kann nicht ein- oder ausgeschaltet werden. Ein Partner kann jedoch die Layouts der Widget-Vorlagen ändern, solange die GMS-Anforderungen erfüllt sind.

Validierung

Um sicherzustellen, dass Ihre Version der Funktion wie beabsichtigt funktioniert, überprüfen Sie Folgendes:

  1. Durch langes Drücken auf Launcher kann ein neues Konversations-Widget für eine Konversation über die Widget-Auswahl hinzugefügt werden. Siehe Abbildung 4 für die Benutzeroberfläche der Widget-Auswahl:

    widget_picker

    Abbildung 4: Widget-Auswahl-UI zum Hinzufügen eines neuen Konversations-Widgets

  2. Beim Senden von Benachrichtigungen von der ausgewählten Konversation an das Gerät wird das Widget aktualisiert, um diese Benachrichtigungen widerzuspiegeln.

  3. Beim Anwenden von Status auf diese Konversation mithilfe der ConversationStatus -API spiegelt das Widget diese Status wider.

  4. Benutzer können Widgets in der Größe ändern und Widgets können ihre Größe basierend auf ihrem aktuellen Launcher ändern. Ihre Widget-Layouts müssen mit verschiedenen Launcher-Größen auf verschiedenen Geräten und bei der Größenänderung des Widgets gut funktionieren.

Verwenden Sie zur Validierung der Implementierung die folgenden Tests im Benachrichtigungspaket:

  • CTS-Tests (PeopleManagerTest) für die API-Oberflächen.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Manuelle Tests für GMS-Anforderung - Gespräche.