Ustaw priorytet wiadomości i zarządzaj nim

Masz dwie opcje przypisywania priorytetu dostarczania do wiadomości podrzędnych na Androidzie: normalny i wysoki priorytet. Dostarczanie wiadomości o normalnym i wysokim priorytecie działa w następujący sposób:

  • Normalny priorytet. Jest to domyślny priorytet dla komunikatów danych . Wiadomości o normalnym priorytecie są dostarczane natychmiast, gdy urządzenie nie jest w stanie uśpienia. Gdy urządzenie znajduje się w trybie drzemki , dostarczanie może zostać opóźnione w celu oszczędzania baterii do czasu wyjścia urządzenia z drzemki. W przypadku mniej ważnych wiadomości, takich jak powiadomienia o nowych wiadomościach e-mail, utrzymywanie synchronizacji interfejsu użytkownika lub synchronizowanie danych aplikacji w tle, wybierz normalny priorytet dostarczania.

    Po otrzymaniu wiadomości o normalnym priorytecie w systemie Android, która żąda synchronizacji danych w tle dla Twojej aplikacji, możesz zaplanować zadanie w WorkManager , aby obsłużyć je, gdy sieć będzie dostępna.

  • Wysoki priorytet. FCM próbuje natychmiast dostarczać wiadomości o wysokim priorytecie, umożliwiając FCM wybudzenie uśpionego urządzenia w razie potrzeby i wykonanie ograniczonego przetwarzania (w tym bardzo ograniczonego dostępu do sieci). Wiadomości o wysokim priorytecie powinny generalnie powodować interakcję użytkownika z Twoją aplikacją lub jej powiadomieniami.

Korzystanie z wiadomości o wysokim priorytecie dla Androida

Wiadomości o wysokim priorytecie na Androidzie są przeznaczone dla treści widocznych dla użytkownika, które są wrażliwe na czas i powinny skutkować powiadomieniami widocznymi dla użytkownika. Jeśli FCM wykryje wzorzec, w którym wiadomości nie skutkują powiadomieniami skierowanymi do użytkownika, priorytet Twoich wiadomości może zostać obniżony do normalnego priorytetu. FCM wykorzystuje 7 dni zachowania wiadomości przy ustalaniu, czy usunąć priorytet wiadomości; dokonuje tego niezależnie dla każdej instancji Twojej aplikacji. Jeśli w odpowiedzi na wiadomości o wysokim priorytecie powiadomienia są wyświetlane w sposób widoczny dla użytkownika, to Twoje przyszłe wiadomości o wysokim priorytecie nie zostaną pozbawione priorytetu. Ma to zastosowanie niezależnie od tego, czy powiadomienie jest wyświetlane przez pakiet SDK FCM w postaci powiadomienia , czy powiadomienia wygenerowanego przez programistę w postaci komunikatu z danymi .

Pomiar depriorytyzacji wiadomości na Androidzie

  • Indywidualne wiadomości. Po dostarczeniu możesz określić, czy dana wiadomość została pozbawiona priorytetu, czy nie, porównując jej priorytet dostarczenia, z getPriority() , z jej pierwotnym priorytetem, z getOriginalPriority()

  • Wszystkie wiadomości. Interfejs FCM Aggregate Delivery Data API może raportować, jaki procent wszystkich Twoich wiadomości wysyłanych do Androida jest usuwany z priorytetu. Niektóre komunikaty mogą zostać pominięte w raportach z danymi zbiorczymi, ale ogólnie powinny dawać ogólny obraz wskaźników depriorytetyzacji komunikatów. Zobacz nasz artykuł na temat zagregowanych danych dostawy, aby uzyskać więcej informacji i przykładowy kod do wysyłania zapytań do interfejsu API; można go również eksplorować z eksploratora API .

Rozwiązywanie problemów

  • Upewnij się, że instancja aplikacji ma włączone powiadomienia. Jeśli użytkownik wyłączył uprawnienia do powiadomień dla Twojej aplikacji, żadne z Twoich powiadomień nie zostanie opublikowane, w wyniku czego Twoje wiadomości zostaną pozbawione priorytetu. Przed wysłaniem komunikatów o wysokim priorytecie do instancji aplikacji należy sprawdzić, czy powiadomienia są włączone .

  • Nie dzwoń do domu przed wysłaniem powiadomienia. Ponieważ niewielka część populacji urządzeń mobilnych z Androidem korzysta z sieci o dużym opóźnieniu, unikaj otwierania połączenia z serwerami przed wyświetleniem powiadomienia. Oddzwanianie do serwera przed upływem dozwolonego czasu przetwarzania może być ryzykowne dla użytkowników w sieciach o dużych opóźnieniach. Zamiast tego dołącz treść powiadomienia do wiadomości FCM i wyświetl ją natychmiast. Jeśli potrzebujesz zsynchronizować dodatkowe treści w aplikacji na Androida, możesz zaplanować zadanie w WorkManager , aby obsłużyć je w tle.