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ć takie powiadomienie lub obniżyć jego rangę do standardowego powiadomienia. Promowane powiadomienia są wyświetlane w bardziej widocznym miejscu 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 dotyczącymi powiadomień, aby przekazywać krótkie, aktualne i istotne informacje.
Karty promowanych powiadomień mają te cechy:
- Domyślnie rozwinięte
- Nie można ich zwinąć
Aby powiadomienie kwalifikowało się jako aktualizacja na żywo, musi spełniać te wymagania:
- Musi mieć styl standardowy,
BigTextStyle,CallStyle,ProgressStylelubMetricStyle. - W manifeście Androida musi prosić o to uprawnienie, które nie jest przyznawane w czasie działania aplikacji:
android.permission.POST_PROMOTED_NOTIFICATIONS. - Musi prosić o promocję za pomocą
EXTRA_REQUEST_PROMOTED_ONGOINGlubNotificationCompat.Builder#setRequestPromotedOngoing. - Musi być
ongoing(ustawFLAG_ONGOING_EVENT). - Musi mieć ustawiony element
contentTitle. - **NIE** może mieć ustawionego elementu customContentView (bez RemoteViews
customContentView).RemoteViews - **NIE** może być podsumowaniem grupy utworzonym za pomocą
setGroupSummary. - **NIE** może mieć ustawionego elementu na .
setColorizedTRUE - Kanał powiadomień NIE może mieć ustawienia
IMPORTANCE_MIN.
Cechy promocji
Te interfejsy API pomagają określić, czy system będzie promować Twoje powiadomienie:
Notification.FLAG_PROMOTED_ONGOINGwskazuje, czy powiadomienie jest promowane.Notification.hasPromotableCharacteristics()sprawdza, czy system może promować powiadomienie. Ta metoda nie uwzględnia, czy użytkownik wyłączył aktualizacje na żywo w ustawieniach aplikacji.NotificationManager.canPostPromotedNotifications()sprawdza, czy Twoja aplikacja może wysyłać promowane powiadomienia, np. czy użytkownik włączył lub wyłączył tę opcję w ustawieniach.Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONSto działanie intencji, które umożliwia aplikacjom przekierowywanie użytkowników do ustawień, aby włączyli tę funkcję.
Kryteria użytkowania
Używaj aktualizacji na żywo w przypadku działań, które są w toku, inicjowane przez użytkownika i wymagają szybkiego działania.
Trwa
Aktualizacja na żywo musi reprezentować działanie, które jest aktywnie w toku i ma wyraźny początek i koniec. Jeśli działanie miało miejsce w przeszłości, nie używaj aktualizacji na żywo. 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ć aktualizacji na żywo.
Aktualizacje na żywo reprezentują działania w toku. Nie używaj aktualizacji na żywo, aby oferować przyspieszony dostęp do funkcji aplikacji. Jeśli chcesz to zrobić, użyj widżetu aplikacji lub niestandardowego kafelka szybkich ustawień.
- Odpowiednie zastosowania: aktywna nawigacja, rozmowy telefoniczne w toku, aktywne śledzenie przejazdu 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 reprezentować działania, które są wyraźnie wywoływane przez użytkownika, np. rozpoczęcie treningu, włączenie nawigacji samochodowej lub zamówienie przejazdu. 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ływane przez inne osoby.
Czasami użytkownik może wykonać działanie, które rozpocznie działanie w przyszłości. Na przykład jeśli użytkownik kupi bilety na lot lub koncert, zarejestruje się na turniej lub w inny sposób wskaże, że będzie uczestniczyć w wydarzeniu, które wymaga szybkiego działania. W takich przypadkach może być odpowiednie automatyczne wyświetlenie aktualizacji na żywo po rozpoczęciu zaplanowanego wydarzenia. Aplikacje muszą jednak dostosować swoje wyzwalacze tak, aby pojawiały się tylko wtedy, gdy działanie jest bliskie. 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 należy jednak dodać działanie Odepnij.
Wymaga szybkiego działania
Wyświetlaj aktualizację na żywo tylko wtedy, gdy wymaga ona uwagi użytkownika przez cały czas trwania działania. Głównym przypadkiem użycia aktualizacji na żywo jest monitorowanie, gdy użytkownik może szybko sprawdzić aktualizację na żywo, aby śledzić zmieniający się stan działania.
Aktualizacja na żywo jest często odpowiednia w przypadku działań, które przechodzą między aktualizacjami na żywo a zwykłymi powiadomieniami. Na przykład wyświetlenie powiadomienia o karcie pokładowej jest odpowiednie na wiele godzin przed lotem użytkownika, ale powiadomienie powinno stać się aktualizacją na żywo dopiero wtedy, gdy użytkownik ma pilną potrzebę, np. gdy dotrze na lotnisko lub do miejsca wydarzenia 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ć.
Sprawdzone metody dotyczące wrażeń użytkowników
Aby wizualizować stan, użyj ikony śledzenia. Można ją dynamicznie aktualizować.
Gdy szacowany czas dotarcia jest obliczany lub jeszcze niedostępny, nie wyświetlaj pustego stanu. Aby wskazać, że system działa, użyj aktywnego tekstu zastępczego, np. „Myślenie…” lub „Zmiana trasy…”, jak pokazano w przykładzie.
Elementy stanu
Elementy stanu umożliwiają użytkownikom śledzenie aktualizacji na żywo, gdy powiadomienie nie jest widoczne. Użyj setShortCriticalText lub setWhen, aby przekazać
ważne informacje o stanie powiadomienia dotyczącego postępów.
Notification.Builder#setSmallIcon.
Notification.Builder#setShortCriticalText, aby wyświetlić czas bezwzględny.
Notification.Builder#setShortCriticalText, aby przekazać ważne informacje.Kiedy
Czas „kiedy” uruchamia odliczanie czasu trwania powiadomienia, chyba że powiadomienie zostanie odrzucone lub zaktualizowane. Poniższe punkty opisują, jak działa czas „kiedy” w różnych sytuacjach:
- Czas „kiedy” jest co najmniej 2 minuty w przyszłości: jeśli bieżąca godzina to 10:05, a czas „kiedy” jest ustawiony na 10:10, element wyświetla 5 min.
- Czas „kiedy” jest w przeszłości: tekst nie jest wyświetlany.
- Gdy używasz chronometru jako czasu „kiedy”, w elemencie może być wyświetlany licznik czasu.
Zobacz
setUsesChronometerisetChronometerCountdown. Licznik czasu chronometru jest wyświetlany w elemencie, dopóki jego wartość jest dodatnia. - Nie chcesz, aby czas „kiedy” był wyświetlany w powiadomieniu: użyj
setShowWhendoFALSE.
Wygląd elementu stanu
Element stanu zawsze zawiera ikonę, a opcjonalnie także tekst. Maksymalna szerokość elementu to 96 dp. Tekst będzie wyświetlany tylko wtedy, gdy cały tekst zmieści się w elemencie. 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, wyświetl tylko ikonę.
- Jeśli wyświetli się więcej niż połowa tekstu, wyświetl jak najwięcej tekstu.
Zamknięcie
Użytkownicy mogą kontrolować widoczność powiadomień w obszarze powiadomień. Wysyłanie niechcianych aktualizacji na żywo może spowodować, że użytkownicy cofną uprawnienia aplikacji do wysyłania powiadomień.
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ł. Aby wykrywać odrzucone aktualizacje, użyj setDeleteIntent.
Aby eksperymentować z tymi interfejsami API, zapoznaj się z przykładową aplikacją.
Najczęstsze pytania
Pytanie: co to jest biała kropka na końcu paska postępu?
Odpowiedź: biała kropka na końcu paska postępu wizualnie oznacza koniec paska postępu.
Pytanie: dlaczego aktualizacje na żywo nie obsługują powiadomień niestandardowych?
Odpowiedź: powiadomienia niestandardowe utrudniają spójne testowanie i wrażenia użytkowników, ponieważ ich działanie znacznie różni się w zależności od wersji Androida i producenta urządzenia. Unikaj powiadomień niestandardowych korzystających z RemoteViews.