Powiadomienia na zegarkach korzystają z tych samych interfejsów API i mają taką samą strukturę jak powiadomienia na telefonach.
Powiadomienia mogą pojawiać się na zegarku na 2 sposoby:
- Aplikacja mobilna tworzy powiadomienie, a system automatycznie przekazuje to powiadomienie na zegarek.
- Aplikacja na urządzenie do noszenia tworzy powiadomienie.
W obu przypadkach do tworzenia powiadomień używaj klasy NotificationCompat.Builder
. Gdy tworzysz powiadomienia za pomocą klasy kreatora, system dba o ich prawidłowe wyświetlanie. Na przykład, gdy wyślesz powiadomienie z aplikacji mobilnej, każde powiadomienie pojawi się w strumieniu powiadomień w postaci karty.
Zapoznaj się z przykładem poniżej, aby zobaczyć, jak wyświetlają się powiadomienia.
Rysunek 1. To samo powiadomienie wyświetlane na telefonie i zegarku.
Aby uzyskać najlepsze wyniki, użyj jednej z tych podklas:NotificationCompat.Style
Uwaga:
użycie RemoteViews
powoduje usunięcie niestandardowych układów z powiadomień, a urządzenie do noszenia wyświetla tylko tekst i ikony.
Zalecane powiadomienia na urządzenia do noszenia
Używaj rozwijanych powiadomień jako punktu wyjścia dla wszystkich powiadomień, ponieważ są one świetnym sposobem na zaangażowanie użytkowników urządzeń do noszenia. Zminiaturizowany stan jest wyświetlany na pasku powiadomień, dzięki czemu można szybko sprawdzić powiadomienie. Jeśli użytkownik ją naciśnie, powiadomienie się rozwinie i wyświetli dodatkowe treści oraz działania, które można przewijać.
Możesz utworzyć rozwijane powiadomienie w taki sam sposób jak na urządzeniu mobilnym, używając dowolnej z NotificationCompat.Style
klas podrzędnych. Na przykład standardowe powiadomienie z użyciem
NotificationCompat.MessagingStyle
wygląda tak:
Rysunek 2. Przykład powiadomienia MessagingStyle
na Wear OS.
W rozwiniętym powiadomieniu u dołu zobaczysz kilka działań.
Przykłady NotificationCompat.BigPictureStyle
, NotificationCompat.BigTextStyle
, NotificationCompat.InboxStyle
i NotificationCompat.MessagingStyle
znajdziesz w przykładowym powiadomieniu w GitHubie.
Wskazówka: jeśli powiadomienia zawierają działanie „Odpowiedz”, np. w przypadku aplikacji do przesyłania wiadomości, możesz ulepszyć ich działanie. Możesz na przykład włączyć wpisywanie głosowe odpowiedzi bezpośrednio z poziomu urządzenia lub zdefiniować gotowe odpowiedzi tekstowe za pomocą ikony setChoices()
.
Więcej informacji znajdziesz w artykule Dodawanie przycisku odpowiedzi.
Unikanie duplikowania powiadomień
Domyślnie powiadomienia są udostępniane z aplikacji towarzyszącej na telefonie na wszystkie sparowane zegarki. To świetna opcja, jeśli nie masz zainstalowanej aplikacji na urządzenie do noszenia.
Jeśli jednak utworzysz samodzielną aplikację na zegarek i aplikację towarzyszącą na telefon, będą one generować podwójne powiadomienia.
Wear OS udostępnia interfejsy Bridging API, które umożliwiają zatrzymanie powielonych powiadomień. Jest to szczególnie ważne w przypadku aplikacji na urządzeniach z Wear OS 5 lub nowszym, ponieważ niektóre powiadomienia, które można odrzucić na urządzeniu mobilnym, nie są odrzucane na urządzeniu z Wear OS. Więcej informacji znajdziesz w artykule Opcje łączenia powiadomień.
Dodawanie do powiadomienia funkcji przeznaczonych na urządzenia do noszenia
Jeśli chcesz dodać do powiadomienia funkcje specyficzne dla urządzeń do noszenia, takie jak ukrywanie ikony aplikacji w powiadomieniu na urządzeniu do noszenia lub umożliwianie użytkownikom dyktowania odpowiedzi tekstowej za pomocą głosu, możesz użyć klasy NotificationCompat.WearableExtender
, aby określić opcje.
Aby korzystać z tego interfejsu API, wykonaj te czynności:
-
Utwórz instancję klasy
WearableExtender
, ustawiając opcje powiadomienia specyficzne dla urządzenia do noszenia. -
Utwórz instancję
NotificationCompat.Builder
, ustawiając odpowiednie właściwości powiadomienia zgodnie z opisem podanym wcześniej w tym przewodniku. -
Wywołaj funkcję
extend()
w powiadomieniu i przekaż do niej wartośćWearableExtender
. Spowoduje to zastosowanie opcji urządzenia do powiadomienia. -
Call
build()
, aby utworzyć powiadomienie.
Uwaga:
jeśli używasz platformy NotificationManager
, niektóre funkcje z NotificationCompat.WearableExtender
nie działają, więc używaj
NotificationCompat
.
Możesz synchronizować zamykanie lub anulowanie powiadomień na urządzeniach użytkownika. Aby zsynchronizować zamknięcie, użyj metody
setDismissalId()
. W przypadku każdego powiadomienia przekaż globalnie unikalny identyfikator w postaci ciągu znaków, gdy wywołujesz funkcję setDismissalId()
. Gdy powiadomienie zostanie odrzucone, wszystkie inne powiadomienia z tym samym identyfikatorem odrzucenia zostaną odrzucone na zegarku i telefonie towarzyszącym. Aby pobrać identyfikator odrzucenia, użyj
getDismissalId()
.
Określanie działań tylko na urządzeniach do noszenia
Jeśli chcesz, aby na zegarku i telefonie były dostępne różne działania, użyj elementu
WearableExtender.addAction()
. Po dodaniu działania tą metodą urządzenie nie będzie wyświetlać żadnych innych działań dodanych za pomocą metody
NotificationCompat.Builder.addAction()
. Działania dodane za pomocą ikony
WearableExtender.addAction()
pojawiają się tylko na urządzeniu do noszenia, a nie na telefonie.
Uruchamianie aplikacji Telefon na urządzeniu do noszenia
Jeśli używasz powiadomień pomostowych, każde powiadomienie automatycznie zawiera przycisk uruchamiający aplikację na telefonie. Jeśli jednak używasz powiadomienia lokalnego utworzonego na zegarku, wykonaj te czynności, aby utworzyć przycisk, który uruchamia aplikację na telefonie:
- Utwórz nowy
Activity
, który rozszerzaConfirmationActivity
. - Użyj
RemoteActivityHelper
w nowymActivity
, aby uruchomić aplikację Telefon. - Podczas tworzenia
Intent
, aby uruchomićActivity
z poziomu powiadomienia, ustaw wartość dodatkowąEXTRA_ANIMATION_TYPE
naOPEN_ON_PHONE_ANIMATION
.
Uwaga: nie możesz używać BroadcastReceiver
jako celu działania powiadomienia.