Ustaw priorytet wiadomości i zarządzaj nim

Masz dwie możliwości przypisania priorytetu dostarczenia wiadomościom w systemie Android: 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 wiadomości zawierających dane . Wiadomości o normalnym priorytecie są dostarczane natychmiast, gdy urządzenie nie śpi. Gdy urządzenie znajduje się w trybie drzemki , dostawa może zostać opóźniona w celu oszczędzania baterii do czasu, aż urządzenie wyjdzie z trybu drzemki. W przypadku wiadomości mniej wrażliwych na czas, takich jak powiadomienia o nowej wiadomości e-mail, synchronizacja interfejsu użytkownika lub synchronizacja danych aplikacji w tle, wybierz normalny priorytet dostarczania.

    Po otrzymaniu wiadomości o normalnym priorytecie w systemie Android z prośbą o synchronizację danych w tle dla Twojej aplikacji, możesz zaplanować zadanie za pomocą WorkManager , aby je obsłużyć, gdy sieć będzie dostępna.

  • Wysoki priorytet. FCM próbuje natychmiast dostarczyć wiadomości o wysokim priorytecie, umożliwiając w razie potrzeby wybudzenie uśpionego urządzenia i wykonanie ograniczonego przetwarzania (w tym bardzo ograniczonego dostępu do sieci). Wiadomości o wysokim priorytecie zazwyczaj powinny skutkować 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 wrażliwych na czas i widocznych dla użytkownika i powinny skutkować powiadomieniami wyświetlanymi użytkownikowi. Jeśli FCM wykryje wzorzec, w którym wiadomości nie skutkują powiadomieniami wyświetlanymi użytkownikowi, priorytet wiadomości może zostać obniżony do normalnego priorytetu. FCM wykorzystuje zachowanie wiadomości z 7 dni przy ustalaniu, czy zmienić priorytet wiadomości; dokonuje tego niezależnie dla każdej instancji aplikacji. Jeśli w odpowiedzi na wiadomości o wysokim priorytecie powiadomienia będą wyświetlane w sposób widoczny dla użytkownika, 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 FCM SDK w formie powiadomienia , czy też w formie powiadomienia generowanego przez programistę w postaci wiadomości zawierającej dane .

Pomiar utraty priorytetów wiadomości w systemie Android

  • Wiadomości indywidualne. Po dostarczeniu możesz określić, czy dana wiadomość straciła priorytet, czy nie, porównując jej dostarczony priorytet z getPriority() z pierwotnym priorytetem z getOriginalPriority()

  • Wszystkie wiadomości. Interfejs API danych dostarczania zbiorczego FCM może raportować, jaki procent wszystkich wiadomości wysyłanych do systemu Android ma pozbawiony priorytetu. Niektóre wiadomości można pominąć w raportach danych zbiorczych, ale ogólnie powinny one dawać globalny obraz wskaźników utraty priorytetów wiadomości. Zobacz nasz artykuł na temat zagregowanych danych o dostawie , aby uzyskać więcej informacji i przykładowy kod do wysyłania zapytań do API; można go również przeglądać za pomocą eksploratora API .

Rozwiązywanie problemów

  • Upewnij się, że Twoja instancja aplikacji ma włączone powiadomienia. Jeśli użytkownik wyłączył uprawnienia do powiadomień w Twojej aplikacji, żadne z Twoich powiadomień nie zostanie opublikowane, w wyniku czego Twoje wiadomości zostaną pozbawione priorytetu. Przed wysłaniem wiadomości 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 telefonów komórkowych z Androidem korzysta z sieci o dużych opóźnieniach, unikaj otwierania połączenia z serwerami przed wyświetleniem powiadomienia. Oddzwonienie 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 natychmiast ją wyświetl. Jeśli chcesz zsynchronizować dodatkową zawartość w aplikacji na Androidzie, możesz zaplanować zadanie za pomocą WorkManager , aby obsłużyć to w tle.