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:
- Eine mobile App erstellt eine Benachrichtigung und das System leitet diese Benachrichtigung automatisch an die Smartwatch weiter.
- 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.
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:
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:
-
Erstellen Sie eine Instanz von
WearableExtender
und legen Sie die tragbaren gerätespezifischen Optionen für die Benachrichtigung fest. -
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. -
Rufen Sie
extend()
für die Benachrichtigung auf und übergeben SieWearableExtender
. Dadurch werden die Wearable-Optionen auf die Benachrichtigung angewendet. -
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:
- Erstelle eine neue
Activity
, dieConfirmationActivity
erweitert. - Verwenden Sie
RemoteActivityHelper
in der neuenActivity
, um die Telefon App zu starten. - Wenn Sie die
Intent
erstellen, um dieActivity
über die Benachrichtigung zu starten, legen Sie das ExtraEXTRA_ANIMATION_TYPE
aufOPEN_ON_PHONE_ANIMATION
fest.
Hinweis:Sie können kein BroadcastReceiver
-Objekt als Ziel der Benachrichtigungsaktion verwenden.