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 je 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 poniższym przykładem, 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. W panelu powiadomień wyświetla się skrócona wersja powiadomienia, która pozwala szybko zapoznać się z jego treścią. 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.Styleklas 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 powiadomieniu w stanie rozwiniętym u dołu znajduje się kilka działań.
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 na urządzeniu lub zdefiniować odpowiedzi tekstowe za pomocą ikony setChoices().
Więcej informacji znajdziesz w artykule Dodawanie przycisku odpowiedzi.
Unikanie zduplikowanych 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 przekazywania 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ą wprowadzania głosowego, 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ż parametrWearableExtender. Spowoduje to zastosowanie opcji urządzenia do powiadomienia. -
Wywołaj funkcję
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 na sparowanym telefonie. Aby pobrać identyfikator odrzucenia, użyj właściwości
getDismissalId().
Określanie działań dostępnych tylko na urządzeniach do noszenia
Jeśli chcesz, aby na zegarku i telefonie były dostępne różne działania, użyj
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 uruchamiający aplikację na telefonie:
- Utwórz nowy
Activity, który rozszerzaConfirmationActivity. - Użyj
RemoteActivityHelperw nowymActivity, aby uruchomić aplikację Telefon. - Podczas tworzenia
Intent, aby uruchomićActivityz poziomu powiadomienia, ustaw dodatkowy elementEXTRA_ANIMATION_TYPEnaOPEN_ON_PHONE_ANIMATION.
Uwaga: jako celu działania powiadomienia nie można używać BroadcastReceiver.