Benachrichtigungen unter Wear OS

Benachrichtigungen auf Smartwatches verwenden dieselben APIs und haben dieselbe Struktur wie Benachrichtigungen auf Smartphones.

Benachrichtigungen können auf einer Smartwatch auf zwei Arten angezeigt werden:

  1. Eine mobile App erstellt eine Benachrichtigung und das System leitet diese Benachrichtigung automatisch an die Smartwatch weiter.
  2. Eine Wearable-App erstellt eine Benachrichtigung.

Verwenden Sie in beiden Fällen die Klasse NotificationCompat.Builder, um Benachrichtigungen zu erstellen. Wenn Sie Benachrichtigungen mit der Builder-Klasse erstellen, sorgt das System dafür, dass sie richtig angezeigt werden. Wenn Sie beispielsweise eine Benachrichtigung über Ihre mobile App senden, wird jede Benachrichtigung als Karte im Benachrichtigungsstream angezeigt.

Im folgenden Beispiel sehen Sie, wie Benachrichtigungen angezeigt werden. notification-cards

Abbildung 1: Dieselbe Benachrichtigung wird auf einem Smartphone und einer Smartwatch angezeigt.

Verwenden Sie für optimale Ergebnisse eine der NotificationCompat.Style-Unterklassen.

Hinweis:Wenn Sie RemoteViews verwenden, werden Benachrichtigungen von benutzerdefinierten Layouts befreit und auf dem Wearable werden nur der Text und die Symbole angezeigt.

Benachrichtigungen zu empfohlenen Videos auf Wearables

Verwende erweiterbare Benachrichtigungen als Ausgangspunkt für alle Benachrichtigungen, da sie eine gute Möglichkeit sind, Nutzer von Wearables anzusprechen. Der minimierte Status wird in der Benachrichtigungsleiste kurz angezeigt. Wenn der Nutzer darauf tippt, wird die Benachrichtigung maximiert und es werden zusätzliche Inhalte und Aktionen angezeigt, die sich scrollen lassen.

Sie können eine maximierbare Benachrichtigung erstellen, indem Sie wie auf Mobilgeräten eine der NotificationCompat.Style-Unterklassen verwenden. Eine Standardbenachrichtigung mit NotificationCompat.MessagingStyle sieht beispielsweise so aus: expandable-notification

Abbildung 2: Beispiel für eine MessagingStyle-Benachrichtigung unter Wear OS.

In der Benachrichtigung sind unten im maximierten Zustand mehrere Aktionen gestapelt.

Beispiele für NotificationCompat.BigPictureStyle, NotificationCompat.BigTextStyle, NotificationCompat.InboxStyle und NotificationCompat.MessagingStyle finden Sie im Benachrichtigungsbeispiel auf GitHub.

Tipp:Wenn Ihre Benachrichtigungen eine Aktion zum Antworten enthalten, z. B. für eine Messaging-App, können Sie das Verhalten der Benachrichtigung optimieren. So können Sie beispielsweise Antworten per Spracheingabe direkt auf dem Wearable oder vordefinierte Textantworten mit setChoices() aktivieren. Weitere Informationen finden Sie unter Schaltfläche „Antworten“ hinzufügen.

Doppelte Benachrichtigungen vermeiden

Standardmäßig werden Benachrichtigungen von einer Companion-Smartphone-App an alle gekoppelten Smartwatches weitergeleitet. Das ist eine gute Option, wenn Sie keine Wearable-App installiert haben.

Wenn Sie jedoch eine eigenständige Smartwatch-App und eine zugehörige Smartphone-App entwickeln, werden durch die Apps doppelte Benachrichtigungen erstellt.

Wear OS bietet mit den Bridging APIs eine Möglichkeit, doppelte Benachrichtigungen zu verhindern. Das ist besonders wichtig für Apps auf Geräten mit Wear OS 5 oder höher, da einige Benachrichtigungen, die auf einem Mobilgerät geschlossen werden können, auf dem Wear OS-Gerät nicht geschlossen werden können. Weitere Informationen finden Sie unter Überbrückungsoptionen für Benachrichtigungen.

Einer Benachrichtigung Wearable-spezifische Funktionen hinzufügen

Wenn Sie einer Benachrichtigung tragbare gerätespezifische Funktionen hinzufügen möchten, z. B. das Ausblenden eines App-Symbols in der Benachrichtigung auf dem Wearable oder die Möglichkeit, dass Nutzer eine Textantwort per Spracheingabe diktieren, können Sie die Klasse NotificationCompat.WearableExtender verwenden, um die Optionen anzugeben. So verwenden Sie diese API:

  1. Erstellen Sie eine Instanz von WearableExtender und legen Sie die tragbaren gerätespezifischen Optionen für die Benachrichtigung fest.
  2. Erstellen Sie eine Instanz von NotificationCompat.Builder und legen Sie die gewünschten Eigenschaften für Ihre Benachrichtigung fest, wie weiter oben in diesem Leitfaden beschrieben.
  3. Rufen Sie extend() für die Benachrichtigung auf und übergeben Sie WearableExtender. Dadurch werden die Wearable-Optionen auf die Benachrichtigung angewendet.
  4. Rufen Sie build() auf, um die Benachrichtigung zu erstellen.

Hinweis:Wenn Sie das NotificationManager des Frameworks verwenden, funktionieren einige Funktionen von NotificationCompat.WearableExtender nicht. Verwenden Sie daher NotificationCompat.

Sie können das Schließen oder Abbrechen von Benachrichtigungen auf den Geräten des Nutzers synchronisieren. Verwenden Sie zum Synchronisieren eines Ausschlusses die Methode setDismissalId(). Übergeben Sie für jede Benachrichtigung eine global eindeutige ID als String, wenn Sie setDismissalId() aufrufen. Wenn die Benachrichtigung geschlossen wird, werden alle anderen Benachrichtigungen mit derselben Schließungs-ID auf der Smartwatch und auf dem gekoppelten Smartphone geschlossen. Verwenden Sie getDismissalId(), um eine Ablehnungs-ID abzurufen.

Nur für Wearables bestimmte Aktionen angeben

Wenn Sie unterschiedliche Aktionen auf der Smartwatch und dem Smartphone verfügbar machen möchten, verwenden Sie WearableExtender.addAction(). Wenn Sie eine Aktion mit dieser Methode hinzufügen, werden auf dem Wearable keine anderen Aktionen angezeigt, die mit NotificationCompat.Builder.addAction() hinzugefügt wurden. Die mit WearableExtender.addAction() hinzugefügten Aktionen werden nur auf dem Wearable und nicht auf dem Smartphone angezeigt.

Telefon App über ein Wearable starten

Wenn Sie überbrückte Benachrichtigungen verwenden, enthält jede Benachrichtigung automatisch eine Schaltfläche zum Starten der App auf dem Smartphone. Wenn Sie jedoch eine lokale Benachrichtigung verwenden, die auf der Smartwatch erstellt wurde, gehen Sie so vor, um eine Schaltfläche zu erstellen, mit der die App auf dem Smartphone gestartet wird:

  1. Erstelle eine neue Activity, die ConfirmationActivity erweitert.
  2. Verwenden Sie RemoteActivityHelper in der neuen Activity, um die Telefon App zu starten.
  3. Wenn Sie die Intent erstellen, um die Activity über die Benachrichtigung zu starten, legen Sie das Extra EXTRA_ANIMATION_TYPE auf OPEN_ON_PHONE_ANIMATION fest.
Bei diesem Ansatz wird der Nutzer aufgefordert, auf seinem Smartphone zu interagieren. Außerdem werden die Plattformanforderungen für das Starten von Hintergrundprozessen eingehalten.

Hinweis:Sie können kein BroadcastReceiver-Objekt als Ziel der Benachrichtigungsaktion verwenden.