Konversationsbenachrichtigungen und Widgets

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

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

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

  • Mit der Konversations-Widget-Funktion können Benutzer Chats ganz einfach auf dem Startbildschirm öffnen und so einen schnellen Überblick über die letzten Konversationen erhalten.

In diesem Dokument werden die Implementierungs-, Anpassungs- und Validierungsaspekte von Konversationsbenachrichtigungen und Widgets beschrieben.

Übersicht über Konversationsbenachrichtigungen

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

Das Conversations-Grundelement kann wie folgt verwendet werden:

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

  • Zum Fahren von Blasen ( Verknüpfungen in Android 11). Siehe Abbildung 1 .

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

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

    conv_bubbles

    Abbildung 1: Benachrichtigung wird als Blase aus der Benachrichtigungsleiste gestartet

    conv_notification

    Abbildung 2: Konversationsbereich über dem Benachrichtigungsschirm

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 umsetzen:

  • Ein neuer Konversationsbereich als separater Abschnitt über dem Benachrichtigungsschatten.
  • Ein Benachrichtigungsstil, der das konversationsspezifische Blasenmuster ermöglicht und unterstützt.

Partner, die Gespräche implementieren, müssen auch wichtige Gespräche implementieren. Die Implementierung von Conversations kann jedoch an OEM-Konzepte ähnlicher Art angepasst werden. Insgesamt haben Partner die Freiheit, den Konversationsabschnitt an ihre spezifische System-Benutzeroberfläche anzupassen. Der Partner muss HAL/Treiber/Kernelcode/Erweiterungen nicht ändern oder implementieren.

Sehen Sie sich die folgende Referenzimplementierung in den Abschnitten „SystemUI“ und „PeopleService“ in AOSP an:

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 vorgesehen 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 statt nach dem generischen NotificationChannel anpassen.

  2. Konversationsspezifische Blasen funktionieren.

Um die Implementierung zu validieren, verwenden Sie 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 in Android 11 erstellten Konversationsdarstellungen auf (wie im vorherigen Abschnitt beschrieben), indem sie es Apps ermöglicht, den Status für die Konversationen bereitzustellen, die in Konversations-Widgets angezeigt werden.

conv_widgets

Abbildung 3: In Konversations-Widgets angezeigte Konversationen

Die Konversations-Widget-Funktion in Android 12 fördert die Verbindung, indem sie es Benutzern ermöglicht, Chats einfach auf dem Startbildschirm zu öffnen. Bei den Widgets handelt es sich um erweiterte Verknüpfungen, die es Benutzern ermöglichen, effizient zu ihren Gesprächen zurückzukehren und gleichzeitig Ausschnitte des Gesprächsstatus anzuzeigen.

Der Partner muss Folgendes umsetzen:

  1. Ein von SystemUI bereitgestelltes Widget.
  2. Ein Ablauf zum Hinzufügen dieser Widgets über den Widget-Auswahlbildschirm.
  3. Unterstützung für die Größenänderung 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.
  • Zur Umsetzung dient die Status API, die es Apps ermöglicht, Status- oder Verfügbarkeitsinformationen zu einer Konversation und dem dazugehö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 (z. B. aus Benachrichtigungen) zwischenspeichert. Diese letztere Funktion ermöglicht es, die Liste der Konversationen zu erweitern, die ein Benutzer möglicherweise zu seinem Startbildschirm hinzufügen könnte.

Sehen Sie sich die folgende Referenzimplementierung in SystemUI- und Launcher3-Dateien an:

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 Konversations-Widgets-Funktion kann nicht aktiviert oder deaktiviert werden. Ein Partner kann jedoch die Layouts der Widget-Vorlagen ändern, sofern die GMS-Anforderungen erfüllt sind.

Validierung

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

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

    widget_picker

    Abbildung 4: Widget-Auswahl-Benutzeroberfläche zum Hinzufügen eines neuen Konversations-Widgets

  2. Beim Senden von Benachrichtigungen an das Gerät von der ausgewählten Konversation 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 die Größe von Widgets ä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.

Um die Implementierung zu validieren, verwenden Sie 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-Anforderungen – Gespräche.