Tworzenie powiadomień o aktualizacjach na żywo

Aktualizacje na żywo zawierają podsumowanie ważnych informacji, dzięki czemu użytkownicy mogą śledzić postępy bez otwierania aplikacji. System promuje powiadomienia o aktualizacjach na żywo, ale użytkownicy mogą tymczasowo odrzucić lub obniżyć ich priorytet, aby stały się standardowymi powiadomieniami. Promowane powiadomienia są bardziej widoczne w systemie, m.in. u góry panelu powiadomień i na ekranie blokady oraz jako element na pasku stanu. Powiadomienia o aktualizacjach na żywo powinny być zgodne z zasadami powiadomień, które mówią o przekazywaniu krótkich, aktualnych i istotnych informacji.

Rysunek 1. Przykład powiadomienia o aktualizacji na żywo.

Karty promowanych powiadomień mają te cechy:

  • Domyślnie rozwinięte
  • Nie można zwinąć

Aby powiadomienie kwalifikowało się jako aktualizacja na żywo, musi spełniać te wymagania:

Cechy promocji

Te interfejsy API pomagają określić, czy system będzie promować Twoje powiadomienie:

  • Notification.FLAG_PROMOTED_ONGOING wskazuje, czy powiadomienie jest promowane.
  • Notification.hasPromotableCharacteristics() sprawdza, czy system może wyświetlać powiadomienie. Ta metoda nie uwzględnia, czy użytkownik wyłączył w ustawieniach aktualizacje na żywo dla aplikacji.
  • NotificationManager.canPostPromotedNotifications() sprawdza, czy aplikacja może wysyłać powiadomienia promowane, np. czy użytkownik włączył lub wyłączył je w ustawieniach.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS to działanie intencji, które umożliwia aplikacjom przekierowywanie użytkowników do Ustawień w celu włączenia tej funkcji.

Kryteria wykorzystania

Używaj aktualizacji na żywo w przypadku aktywności, które są w toku, zostały zainicjowane przez użytkownika i są wrażliwe na czas.

Rysunek 2. Aktualizacja na żywo na ekranie głównym i ekranie blokady oraz w postaci elementu.

Trwa

Aktualizacja na żywo musi przedstawiać aktywność, która jest w trakcie realizacji, i mieć wyraźnie określony początek i koniec. Jeśli aktywność miała miejsce w przeszłości, nie używaj funkcji Live Update. Zamiast tego użyj standardowego powiadomienia. Dotyczy to również wydarzeń, które jeszcze się nie rozpoczęły, chociaż w przypadku wydarzeń, które mają się rozpocząć, można użyć funkcji Aktualizacja na żywo.

Aktualizacje na żywo to bieżące działania. Nie używaj aktualizacji na żywo, aby oferować szybszy dostęp do funkcji aplikacji. Jeśli chcesz to zrobić, użyj widżetu aplikacji lub niestandardowego kafelka Szybkich ustawień.

  • Odpowiednie zastosowania: aktywna nawigacja, trwające rozmowy telefoniczne, aktywne śledzenie przejazdów i aktywne śledzenie dostawy jedzenia.
  • Nieodpowiednie zastosowania: reklamy, promocje, wiadomości na czacie, alerty, nadchodzące wydarzenia w kalendarzu i szybki dostęp do funkcji aplikacji.

Inicjowane przez użytkownika

Większość aktualizacji na żywo powinna odzwierciedlać działania, które są wyraźnie wywoływane przez użytkownika, takie jak rozpoczęcie treningu, włączenie nawigacji samochodowej lub wezwanie taksówki. Nie wyświetlaj w aktualizacji na żywo informacji o otoczeniu użytkownika, jego zainteresowaniach ani nadchodzących wydarzeniach. Nie zezwalaj na generowanie aktualizacji na żywo przez działania wywołane przez inne podmioty.

Czasami użytkownik może wykonać działanie, które zainicjuje aktywność w przyszłości. Na przykład gdy użytkownik kupi bilety na lot lub koncert, zarejestruje się na turniej albo w inny sposób zadeklaruje, że weźmie udział w wydarzeniu, które odbędzie się w określonym terminie. W takich przypadkach warto automatycznie wyświetlać aktualizację na żywo po rozpoczęciu zaplanowanego wydarzenia. Aplikacje muszą jednak dostosować swoje wyzwalacze, aby pojawiały się tylko wtedy, gdy aktywność jest nieuchronna. Jeśli użytkownik wyraźnie wskaże, że chce rozpocząć monitorowanie zdarzenia w tle, np. meczu sportowego, możesz zacząć publikować aktualizacje na żywo dotyczące tego wydarzenia. W powiązanym powiadomieniu powinna się jednak znajdować też opcja Odepnij.

Pilne

Wyświetlaj aktualizację na żywo tylko wtedy, gdy wymaga ona uwagi użytkownika przez cały czas trwania aktywności. Kluczowym zastosowaniem aktualizacji na żywo jest monitorowanie, gdy użytkownik odnosi znaczną korzyść z szybkiego sprawdzenia aktualizacji na żywo, aby śledzić zmieniający się stan aktywności.

Aktualizacja na żywo jest często odpowiednia w przypadku działań, które przechodzą między aktualizacjami na żywo a normalnymi powiadomieniami. Na przykład powiadomienie z kartą pokładową można wyświetlać na wiele godzin przed lotem użytkownika, ale powinno ono stać się aktualizacją na żywo dopiero wtedy, gdy użytkownik ma pilną potrzebę, np. gdy dotrze na lotnisko lub do miejsca docelowego albo gdy rozpocznie się wejście na pokład. Z kolei aktualizacja na żywo nie jest odpowiednia do śledzenia przesyłki, ponieważ użytkownik nie musi jej stale monitorować.

Praktyki związane z UX

Użyj ikony trackera, aby wizualizować stan. Można ją dynamicznie aktualizować.

niestandardowy element śledzenia na pasku postępu,
Rysunek 3. niestandardową ikonę urządzenia śledzącego
,

Gdy szacowany czas dotarcia jest obliczany lub jeszcze niedostępny, nie wyświetlaj pustego stanu. Podaj aktywny tekst zastępczy, np. „Myślenie…” lub „Zmiana trasy…”, aby wskazać, że system działa, jak pokazano w przykładzie.

stan niepusty, który sygnalizuje, że trwa przetwarzanie;
Rysunek 4. Niepusty stan aktualizacji na żywo.

Elementy stanu

Powiadomienia o stanie umożliwiają użytkownikom śledzenie aktualizacji na żywo, gdy powiadomienie nie jest widoczne. Używaj symboli setShortCriticalText lub setWhen, aby przekazywać ważne informacje o stanie powiadomienia opartego na postępach.

element stanu z ikoną,
Rysunek 5. Stan nieokreślony jest oznaczony małą ikoną Notification.Builder#setSmallIcon.
element stanu z godziną,
Rysunek 6. Użyj Notification.Builder#setShortCriticalText, aby wyświetlić czas bezwzględny.
element stanu z informacjami,
Rysunek 7. Używaj Notification.Builder#setShortCriticalText, aby przekazywać ważne informacje.

Gdy czas

Gdy nadejdzie czas, włącza się odliczanie czasu trwania powiadomienia, chyba że zostanie ono zamknięte lub zaktualizowane. Poniżej znajdziesz opis działania czasu w różnych sytuacjach:

  • Gdy czas jest co najmniej 2 minuty w przyszłości: jeśli aktualna godzina to 10:05, a czas ustawiony to 10:10, na elemencie pojawi się napis 5 min.
  • Gdy czas jest w przeszłości: tekst nie jest wyświetlany.
  • Podczas korzystania z aplikacji Chronometr w przypadku pomiaru czasu można wyświetlić minutnik w układzie. Zobacz setUsesChronometersetChronometerCountdown. Minutnik chronometru jest wyświetlany na kafelku, dopóki ma wartość dodatnią.
  • Nie chcesz, aby czas był wyświetlany w powiadomieniu: użyj setShowWhen, aby FALSE.

Wygląd elementu stanu

Chip stanu zawsze zawiera ikonę, a opcjonalnie także tekst. Element ma maksymalną szerokość 96 dp. Tekst będzie widoczny tylko wtedy, gdy cały zmieści się w kapslu. Tekst jest wyświetlany w zależności od tych kryteriów:

  • Jeśli tekst ma mniej niż 7 znaków, wyświetl cały tekst.
  • Jeśli wyświetli się mniej niż połowa tekstu, pokaż tylko ikonę.
  • Jeśli wyświetlana będzie ponad połowa tekstu, pokaż jak najwięcej tekstu.

Wear OS

Aktualizacje na żywo są przekazywane na niektóre połączone urządzenia z Wear OS. Wskazówki dotyczące tego zachowania udostępniania powiadomień oraz tworzenia lokalnych aktualizacji na żywo na Wear OS znajdziesz w przewodniku po aktualizacjach na żywo na Wear OS.

Zamknięcie

Użytkownicy mogą kontrolować widoczność powiadomień w obszarze powiadomień. Publikowanie niechcianych aktualizacji na żywo może spowodować, że użytkownicy cofną uprawnienia aplikacji do publikowania.

Aby uniemożliwić użytkownikom całkowite wyłączenie aktualizacji na żywo, unikaj publikowania aktualizacji, które użytkownicy mogą odrzucić. Nie publikuj ponownie aktualizacji na żywo, które użytkownik odrzucił. Użyj narzędzia setDeleteIntent, aby wykryć odrzucone aktualizacje.

Aby wypróbować te interfejsy API, zapoznaj się z przykładową aplikacją.

Najczęstsze pytania

Pytanie: co oznacza biała kropka na końcu paska postępu?

wskaźnik wizualizacji ułatwień dostępu na końcu postępu,
Rysunek 8. Wizualizacja ułatwień dostępu na końcu podróży

Odpowiedź: biała kropka na końcu paska postępu wizualnie oznacza jego koniec.

Pytanie: dlaczego w przypadku aktualizacji na żywo nie są obsługiwane powiadomienia niestandardowe?

Odpowiedź: niestandardowe powiadomienia utrudniają przeprowadzanie spójnych testów i ocenę UX, ponieważ ich działanie znacznie różni się w zależności od wersji Androida i producenta urządzenia. Unikaj niestandardowych powiadomień za pomocą RemoteViews.