Powiadomienia na Wear OS

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:

  1. Aplikacja mobilna tworzy powiadomienie, a system automatycznie łączy je z zegarkiem.
  2. Aplikacja do noszenia tworzy powiadomienie.

W obu scenariuszach do tworzenia powiadomień użyj klasy NotificationCompat.Builder. Gdy tworzysz powiadomienia za pomocą klasy konstruktora, system dba o ich prawidłowe wyświetlanie. Jeśli na przykład wyślesz powiadomienie z aplikacji mobilnej, każde powiadomienie będzie wyświetlane jako karta w strumieniu powiadomień.

Zapoznaj się z poniższym przykładem, aby zobaczyć, jak wyświetlają się powiadomienia. karty powiadomień

Rysunek 1. To samo powiadomienie wyświetla się na telefonie i na zegarku.

Aby uzyskać najlepsze wyniki, użyj jednej z podklas NotificationCompat.Style.

Uwaga: użycie RemoteViews spowoduje usunięcie powiadomień o układach niestandardowych, a urządzenie do noszenia wyświetla tylko tekst i ikony.

Zalecane powiadomienia dotyczące urządzeń do noszenia

Rozwijane powiadomienia powinny być punktem wyjścia dla wszystkich powiadomień, ponieważ stanowią świetny sposób na zaangażowanie użytkowników urządzeń do noszenia. Stan zwinięty wyświetla się na pasku powiadomień, dzięki czemu szybko rzuca się w oczy. Gdy użytkownik ją kliknie, powiadomienie się rozwinie, pokazując wciągające funkcje dodatkowe z możliwością przewijania.

Możesz utworzyć powiadomienie rozwijane w taki sam sposób jak na urządzeniach mobilnych, używając dowolnych podklas NotificationCompat.Style. Na przykład standardowe powiadomienie z elementem NotificationCompat.MessagingStyle wygląda tak: powiadomienie rozwijane

Rysunek 2. Przykład powiadomienia MessagingStyle na Wear OS.

Jak widać, powiadomienie zawiera wiele działań ułożonych u dołu stanu rozwiniętego.

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 obsługi wiadomości, możesz ulepszyć działanie powiadomienia. Możesz na przykład włączyć odpowiedzi głosowe bezpośrednio w urządzeniu do noszenia lub wstępnie zdefiniowanych odpowiedziach tekstowych za pomocą funkcji setChoices(). Więcej informacji znajdziesz w sekcji Dodawanie przycisku odpowiedzi.

Unikanie powielania powiadomień

Domyślnie powiadomienia są połączone z powiązaną aplikacją na telefon ze wszystkimi sparowanymi zegarkami. Jest to świetne rozwiązanie, jeśli nie masz zainstalowanej aplikacji do noszenia.

Jeśli jednak utworzysz samodzielną aplikację na zegarek i towarzyszącą aplikację na telefon, aplikacje te będą tworzyć zduplikowane powiadomienia.

Wear OS umożliwia zapobieganie duplikowaniu powiadomień za pomocą interfejsów Bridging API. Więcej informacji znajdziesz w artykule Opcje blokowania powiadomień.

Dodawanie do powiadomienia funkcji specyficznych dla urządzeń do noszenia

Jeśli chcesz dodać do powiadomienia funkcje dotyczące urządzeń do noszenia, na przykład ukryć ikonę aplikacji w powiadomieniu na urządzeniu do noszenia lub zezwolić użytkownikom na dyktowanie odpowiedzi tekstowej, możesz użyć klasy NotificationCompat.WearableExtender, aby określić opcje. Aby użyć tego interfejsu API, wykonaj te czynności:

  1. Utwórz instancję WearableExtender, ustawiając opcje powiadomień dla urządzeń do noszenia.
  2. Utwórz instancję NotificationCompat.Builder i ustaw odpowiednie właściwości powiadomienia w sposób opisany w tym przewodniku.
  3. Zadzwoń pod numer extend() w powiadomieniu i przekaż WearableExtender. Spowoduje to zastosowanie opcji do noszenia do powiadomienia.
  4. Wywołaj build(), aby utworzyć powiadomienie.

Uwaga: jeśli używasz NotificationManager platformy, niektóre funkcje NotificationCompat.WearableExtender nie będą działać. Pamiętaj, by używać usługi NotificationCompat.

Możesz synchronizować odrzucenia lub anulowanie powiadomień na urządzeniach użytkownika. Aby zsynchronizować odrzucenie, użyj metody setDismissalId(). Przy wywołaniu funkcji setDismissalId() dla każdego powiadomienia przekaż w postaci ciągu znaków unikalny identyfikator globalnie. Po odrzuceniu powiadomienia wszystkie pozostałe powiadomienia z tym samym identyfikatorem odrzucenia są zamykane na zegarku i na telefonie towarzyszącym. Aby pobrać identyfikator odrzucenia, użyj kodu getDismissalId().

Określ działania tylko do noszenia

Jeśli chcesz, aby na zegarku i na telefonie były dostępne różne działania, użyj funkcji WearableExtender.addAction(). Gdy dodasz działanie za pomocą tej metody, urządzenie do noszenia nie będzie wyświetlać żadnych innych akcji dodanych za pomocą NotificationCompat.Builder.addAction(). Działania dodane za pomocą funkcji WearableExtender.addAction() pojawiają się tylko na urządzeniu do noszenia, a nie na telefonie.