Uprawnienie do powiadomień dla powiadomień o akceptacji

Powiadomienia w systemie Android 13 korzystają z modelu zgody, co stanowi zmianę w stosunku do poprzednich wersji Androida, które korzystają z modelu rezygnacji. W systemie Android 13 wszystkie aplikacje muszą pytać użytkowników o pozwolenie przed wysłaniem monitu o powiadomienie. Ten model pomaga zredukować przerwy w wyświetlaniu powiadomień, minimalizuje przeciążenie informacjami i pomaga użytkownikom kontrolować, jakie powiadomienia są wyświetlane na podstawie tego, co jest dla nich ważne. Aby wspierać model opt-in, producenci OEM muszą wdrożyć zmiany w systemach powiadomień i zezwoleń w czasie wykonywania.

Na tej stronie opisano, co producenci OEM muszą zaimplementować, aby obsłużyć tę zmianę, i jak sprawdzić poprawność implementacji.

Wprowadź zmiany dotyczące powiadomień o wyrażeniu zgody

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

W systemie Android 13 i nowszych ustawienie określające, czy aplikacja może wysyłać użytkownikowi powiadomienia, jest przechowywane w systemie uprawnień. Przed Androidem 13 to ustawienie było przechowywane w systemie powiadomień. W związku z tym producenci OEM muszą migrować istniejące dane powiadomień o tym, czy aplikacja może wysyłać powiadomienia, z systemu powiadomień do systemu uprawnień w czasie wykonywania. Producenci OEM muszą również utrzymywać istniejące interfejsy API w systemie powiadomień, które udostępniają te dane twórcom aplikacji.

Zmiany w systemach powiadomień i uprawnień oparte są na modelu opt-in zachowań użytkowników w zakresie powiadomień i zostały opisane w sekcji Wskazówki dotyczące wdrażania .

Zachowanie powiadomień użytkownika w modelu opt-in

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

Urządzenie z Androidem 13 Aplikacje kierowane na system Android 13 lub nowszy Aplikacje kierowane na wersje starsze niż Android 13
Nowa instalacja Powiadomienia są blokowane, dopóki aplikacja nie wyświetli monitu.

Aplikacje kontrolują, kiedy pytać 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 pozwolenie jest przyznawane do momentu, gdy aplikacja zapyta o to podczas pierwszego kwalifikującego się biegu.

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

Tymczasowe zezwolenie jest przyznawane do pierwszego uruchomienia aplikacji.

Wytyczne wdrożeniowe

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

Podczas implementacji stosuj się do poniższych wskazówek dotyczących powiadomień użytkowników w przypadku aplikacji kierowanych na pakiety SDK Androida 13 lub starszego:

  • Ś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, dopóki aplikacja nie wyświetli monitu, ponieważ aplikacja kontroluje, kiedy i czy poprosić 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świetlać monit o pozwolenie przy pierwszym uruchomieniu aplikacji.
  • Każda aplikacja, która istniała na urządzeniu przed uaktualnieniem do Androida 13 lub każda aplikacja, która została przywrócona za pomocą 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 kierowanych na pakiet SDK w wersji Androida 13 lub nowszej, 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 uprawnień do powiadamiania w ramach tymczasowego przyznania uaktualnienia, a użytkownik uruchomił ją co najmniej raz, aplikacja musi wyświetlić monit o pozwolenie na powiadomienie, zanim będzie mogła uruchamiać dalsze usługi pierwszego planu.

    • W przypadku aplikacji, które mają docelowy zestaw SDK w wersjach niższych 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 aktualizowanym urządzeniu lub podczas przywracania kopii zapasowej na urządzeniu, ustawienie na poziomie aplikacji musi zostać przeniesione do systemu uprawnień z flagą FLAG_PERMISSION_USER_SET . Użytkownikowi nie wolno wyświetlać żadnego monitu o zgodę na powiadomienie, chyba że aplikacja wyraźnie o to poprosi.

  • Kopie zapasowe i przywracanie muszą być zgodne wstecz i w przód między urządzeniem z systemem Android 13 a urządzeniem z wcześniejszą wersją systemu operacyjnego. Dane kopii zapasowej wygenerowane z urządzenia z systemem Android 13 muszą zostać przywrócone we wcześniejszej wersji systemu operacyjnego, a dane kopii zapasowej z wcześniejszej wersji systemu operacyjnego muszą zostać przywrócone na urządzeniu z systemem Android 13.

  • Powiadomienia multimedialne związane z trwającym odtwarzaniem multimediów muszą być wyłączone z uprawnienia do powiadomień.

Zatwierdź zmiany w systemach powiadomień i zezwoleń

Aby zweryfikować implementację, uruchom następujące testy: