Zezwolenie na powiadomienia dotyczące powiadomień wyrażających zgodę

Powiadomienia w Androidzie 13 wykorzystują model opt-in, co stanowi zmianę w stosunku do poprzednich wersji Androida, które korzystają z modelu opt-out. W systemie Android 13 wszystkie aplikacje muszą pytać użytkowników o pozwolenie przed wysłaniem monitów z powiadomieniami. Model ten pomaga ograniczyć przerwy w wysyłaniu powiadomień, minimalizuje przeciążenie informacjami i pomaga użytkownikom kontrolować, jakie powiadomienia są wyświetlane w oparciu o to, co jest dla nich ważne. Aby wspierać model opt-in, producenci OEM muszą wdrożyć zmiany w systemach powiadomień i uprawnień wykonawczych.

Na tej stronie opisano, co producenci OEM muszą wdrożyć, aby obsłużyć tę zmianę, oraz sposób sprawdzania poprawności wdrożenia.

Wprowadź zmiany w powiadomieniach wyrażających zgodę

Począwszy od Androida 13, aplikacje muszą zadeklarować zamiar wysyłania powiadomień, żądając od systemu uprawnień wykonawczych android.permission.POST_NOTIFICATION , zanim będą mogły wysyłać powiadomienia.

W Androidzie 13 i nowszych ustawienia określające, czy aplikacja może wysyłać powiadomienia do użytkownika, są przechowywane w systemie uprawnień. Przed Androidem 13 to ustawienie było przechowywane w systemie powiadomień. Dlatego producenci OEM muszą przeprowadzić migrację istniejących danych powiadomień o tym, czy aplikacja może wysyłać powiadomienia, z systemu powiadomień do systemu uprawnień wykonawczych. Producenci OEM muszą także utrzymywać w systemie powiadomień istniejące interfejsy API, które przekazują te dane twórcom aplikacji.

Zmiany w systemach powiadomień i uprawnień opierają się na modelu opt-in zachowania powiadamiania użytkowników i zostały opisane w sekcji Wytyczne dotyczące wdrożenia .

Zachowanie powiadomień użytkowników w modelu opt-in

Poniższa tabela ilustruje zachowanie powiadomień dla różnych wersji aplikacji na urządzeniu z systemem Android 13:

Urządzenie z Androidem 13 Aplikacje kierowane na Androida 13 lub nowszego Aplikacje kierowane na wersje starsze niż Android 13
Nowa instalacja Powiadomienia są blokowane do czasu wyświetlenia monitu przez aplikację.

Aplikacje kontrolują, kiedy prosić o pozwolenie.

Powiadomienia są blokowane do czasu wyświetlenia monitu przez system operacyjny.

Pozwolenie jest wymagane przy pierwszym uruchomieniu aplikacji.

Istniejąca aplikacja (aktualizacja) Powiadomienia są dozwolone, dopóki aplikacja nie wyświetli monitu.

Tymczasowe zezwolenie jest udzielane do czasu, aż aplikacja poprosi o to podczas pierwszego przejazdu kwalifikacyjnego.

Powiadomienia są dozwolone, dopóki system operacyjny nie wyświetli monitu.

Zezwolenie tymczasowe jest udzielane do czasu pierwszego uruchomienia aplikacji.

Wytyczne dotyczące wdrożenia

Aby zapoznać się z implementacją referencyjną, zobacz usługę powiadamiania , usługę uprawnień i usługę zasad . Aby zaimplementować wyjątki dla domyślnych procedur obsługi uprawnień, zobacz Uprawnienia wykonawcze .

Podczas wdrażania stosuj się do następujących wskazówek dotyczących zachowania powiadomień użytkowników w przypadku aplikacji przeznaczonych dla Androida 13 lub starszych zestawów SDK:

  • Świeżo zainstalowane aplikacje na urządzeniu z Androidem 13 nie mogą wysyłać powiadomień bez zatwierdzenia przez użytkownika monitu o pozwolenie.
    • Jeśli aplikacja jest przeznaczona dla wersji Androida 13 i nowszych, powiadomienia muszą być blokowane do czasu wyświetlenia monitu przez aplikację, ponieważ aplikacja kontroluje, kiedy i czy pytać użytkownika o pozwolenie.
    • Jeśli aplikacja jest przeznaczona dla wersji niższych niż Android 13, powiadomienia muszą być blokowane do czasu wyświetlenia monitu przez system operacyjny. System operacyjny musi wyświetlić monit o pozwolenie przy pierwszym uruchomieniu aplikacji.
  • Każda aplikacja, która istniała na urządzeniu przed aktualizacją do Androida 13, lub jakakolwiek aplikacja, która została przywrócona w ramach tworzenia kopii zapasowej i przywracania, musi mieć możliwość wysyłania powiadomień do momentu pierwszego uruchomienia przez użytkownika działania w tej aplikacji.

    • W przypadku aplikacji przeznaczonych dla pakietu SDK w wersji Androida 13 i nowszych, jeśli użytkownik nie dostosował wcześniej ustawień powiadomień dla tej aplikacji na poziomie aplikacji lub NotificationChannel , cofnij tymczasowe przyznanie uprawnień. Aplikacje muszą następnie poprosić użytkownika o pozwolenie, zanim będą mogły kontynuować wysyłanie powiadomień.

      Jeśli uaktualniona aplikacja przeznaczona dla systemu Android 13 nie ma obecnie pozwolenia na powiadamianie w ramach tymczasowego zezwolenia na uaktualnienie, a użytkownik uruchomił ją co najmniej raz, aplikacja musi wyświetlić monit o pozwolenie, zanim będzie mogła uruchomić dalsze usługi na pierwszym planie.

    • W przypadku aplikacji, które mają docelowy zestaw SDK w wersji starszej niż Android 13, przechwyć pierwsze uruchomienie działania po utworzeniu przez aplikację co najmniej jednego NotificationChannel , aby wyświetlić monit o pozwolenie z pytaniem, czy użytkownik chce otrzymywać powiadomienia z aplikacji.

      Jeśli użytkownik wcześniej dostosował ustawienia powiadomień na poziomie aplikacji lub NotificationChannel dla aplikacji na urządzeniu do aktualizacji lub w kopii zapasowej przywracanej na urządzeniu, ustawienie na poziomie aplikacji należy przenieść do systemu uprawnień za pomocą flagi FLAG_PERMISSION_USER_SET . Użytkownikowi nie musi być wyświetlana żadna prośba o pozwolenie na powiadomienie, chyba że aplikacja wyraźnie o to poprosi.

  • Tworzenie kopii zapasowych i przywracanie musi być zgodne wstecz i w przód między urządzeniem z Androidem 13 a urządzeniem z wcześniejszą wersją systemu operacyjnego. Dane kopii zapasowej wygenerowane na urządzeniu z systemem Android 13 należy przywrócić na wcześniejszą wersję systemu operacyjnego, a dane kopii zapasowej z wcześniejszej wersji systemu operacyjnego należy przywrócić na urządzeniu z systemem Android 13.

  • Powiadomienia o multimediach związane z trwającym odtwarzaniem multimediów muszą być zwolnione z obowiązku powiadamiania.

Zatwierdź zmiany w systemach powiadomień i zezwoleń

Aby sprawdzić poprawność implementacji, uruchom następujące testy: