Aktualizacje na żywo zawierają podsumowanie ważnych aktualizacji, 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 priorytet do standardowego powiadomienia. Powiadomienia promowane są bardziej widoczne na powierzchniach systemowych, m.in. u góry obszaru 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 dostarczać krótkie, aktualne i istotne informacje.
Karty powiadomień o ofertach mają te cechy:
- Domyślnie rozwinięte
- Nie można zwijać
Aby powiadomienie mogło zostać uznane za aktualizację na żywo, musi spełniać te wymagania:
- Musi to być styl standardowy,
BigTextStyle,CallStyle,ProgressStylelubMetricStyle. - Musi prosić o następujące uprawnienia inne niż uprawnienia w czasie działania aplikacji w pliku manifestu Androida:
android.permission.POST_PROMOTED_NOTIFICATIONS. - Musisz poprosić o promocję, używając
EXTRA_REQUEST_PROMOTED_ONGOINGlubNotificationCompat.Builder#setRequestPromotedOngoing. - Musi to być
ongoing(ustawFLAG_ONGOING_EVENT). - Musi mieć ustawioną wartość
contentTitle. - NIE może mieć ustawionych żadnych
customContentView(brakRemoteViews). - NIE może być podsumowaniem grupy używającej
setGroupSummary. - NIE może
setColorizeddoTRUE. - Kanał powiadomień NIE może mieć ustawienia
IMPORTANCE_MIN.
Cechy promocji
Te interfejsy API pomogą Ci określić, czy system będzie promować powiadomienie:
Notification.FLAG_PROMOTED_ONGOINGwskazuje, czy powiadomienie jest promowane.Notification.hasPromotableCharacteristics()sprawdza, czy system może promować powiadomienie. Ta metoda nie uwzględnia tego, czy użytkownik wyłączył aktualizacje na żywo dla aplikacji w ustawieniach.NotificationManager.canPostPromotedNotifications()sprawdza, czy aplikacja może opublikować powiadomienie o ofercie, 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 mogli włączyć tę funkcję.
Kryteria wykorzystania
Używaj aktualizacji na żywo w przypadku działań, które trwają, są inicjowane przez użytkownika i wymagają szybkiej reakcji.
Trwa
Aktualizacja na żywo musi dotyczyć aktywności, która jest w toku i ma wyraźny początek i koniec. Jeśli aktywność miała 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ż wydarzenia, które mają się rozpocząć, mogą korzystać z aktualizacji na żywo.
Aktualizacje na żywo dotyczą trwających aktywności. 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, trwające połączenia telefoniczne, aktywne śledzenie przejazdów i aktywne śledzenie dostaw jedzenia.
- Niewłaściwe 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 dotyczyć działań, które są wyraźnie wywoływane przez użytkownika, takich jak rozpoczęcie treningu, uruchomienie nawigacji samochodowej lub zamówienie przejazdu. Nie wyświetlaj w aktualizacji na żywo informacji o otoczeniu, takich jak informacje o środowisku użytkownika, jego zainteresowaniach czy 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 inicjuje aktywność na jakiś czas 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 weźmie udział w wydarzeniu, które ma określony termin. W takich przypadkach warto automatycznie wyświetlać aktualizację na żywo, gdy rozpocznie się zaplanowane wydarzenie. Aplikacje muszą jednak dostosować swoje aktywatory, aby pojawiały się tylko wtedy, gdy aktywność jest nieuchronna. Jeśli użytkownik wyraźnie zaznaczy, że chce zacząć monitorować wydarzenie w tle, np. mecz, możesz zacząć publikować aktualizacje na żywo dotyczące tego wydarzenia. W powiązanym powiadomieniu należy jednak uwzględnić działanie Odepnij.
Pilne
Wyświetlaj aktualizację na żywo tylko wtedy, gdy wymaga ona uwagi użytkownika przez cały czas trwania aktywności. Głównym zastosowaniem aktualizacji na żywo jest monitorowanie, gdy użytkownik odnosi znaczną korzyść z rzucenia okiem na aktualizację na żywo, aby śledzić zmieniający się stan aktywności.
Aktualizacje na żywo często sprawdzają się w przypadku aktywności, które przechodzą między aktualizacjami na żywo a normalnymi 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 tylko 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 stale jej monitorować.
Praktyki dotyczące UX
Użyj ikony śledzenia, aby zwizualizować stan. Można go aktualizować dynamicznie.
Gdy szacowany czas dotarcia na miejsce jest obliczany lub nie jest jeszcze dostępny, nie pokazuj pustego stanu. Wyświetlaj aktywny tekst zastępczy, np. „Myślę…” lub „Zmieniam trasę…”, aby wskazać, że system działa, 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ępu.
Notification.Builder#setSmallIcon.
Notification.Builder#setShortCriticalText, aby wyświetlić czas bezwzględny.
Notification.Builder#setShortCriticalText do przekazywania ważnych informacji.Kiedy
Czas wyzwala odliczanie czasu trwania powiadomienia, chyba że powiadomienie zostanie zamknięte lub zaktualizowane. Poniżej opisujemy, jak działa czas „kiedy” w różnych sytuacjach:
- Czas jest ustawiony na co najmniej 2 minuty w przyszłości: jeśli aktualna godzina to 10:05, a czas jest ustawiony na 10:10, element pokazuje 5 min.
- Jeśli czas jest w przeszłości: tekst nie jest wyświetlany.
- Gdy używasz chronometru, na elemencie może być wyświetlany minutnik.
Zobacz
setUsesChronometerisetChronometerCountdown. Stoper jest wyświetlany w elemencie, dopóki jego wartość jest dodatnia. - Jeśli nie chcesz, aby w powiadomieniu wyświetlała się godzina, użyj metody
setShowWhen, aby ustawić wartośćFALSE.
Wygląd elementu stanu
Element stanu zawsze zawiera ikonę i opcjonalnie tekst. Maksymalna szerokość elementu to 96 dp. Tekst będzie widoczny tylko wtedy, gdy cały zmieści się w elemencie. Tekst wyświetla się w zależności od tych kryteriów:
- Jeśli jest 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świetli się więcej niż 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 mostkowania 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 poeksperymentować z tymi interfejsami API, zapoznaj się z przykładową aplikacją.
Najczęstsze pytania
Pytanie: Co oznacza 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 powiadomienia niestandardowe nie są obsługiwane w przypadku aktualizacji na żywo?
Odpowiedź: powiadomienia niestandardowe utrudniają spójne testowanie i zapewnianie wygody użytkownikom, ponieważ ich działanie różni się znacznie w zależności od wersji Androida i producenta urządzenia. Unikaj powiadomień niestandardowych, które używają RemoteViews.