Powiadomienia na Androidzie 13 korzystają z modelu dobrowolnego, to zmiana w porównaniu z poprzednimi wersjami Androida, które korzystały z modelu rezygnacji. W Android 13: wszystkie aplikacje muszą prosić użytkowników o zgodę wysyłania powiadomień. Ten model pomaga ograniczyć liczbę powiadomień zakłócać działanie aplikacji, minimalizować przeciążenie informacjami i pomagać użytkownikom kontrolować w zależności od tego, co jest dla niego ważne. Wsparcie model zgody, OEM musi wprowadzać zmiany w powiadomieniach i czasie działania. systemów uprawnień.
Na tej stronie opisujemy, co muszą wdrożyć producenci OEM, aby wprowadzić tę zmianę, i w jaki sposób na potrzeby weryfikacji implementacji.
Wprowadź zmiany w powiadomieniach
Począwszy od Androida 13 aplikacje muszą zadeklarować
wysyłania powiadomień przez
android.permission.POST_NOTIFICATION
zgody systemu w czasie działania, zanim będą mogli wysyłać powiadomienia.
W Androidzie 13 i nowszych to ustawienie określa, jeśli aplikacja może wysyłać powiadomienia do użytkownika, jest przechowywana w systemie uprawnień. Przed Androidem 13 to ustawienie było przechowywane w do systemu powiadomień. Z tego powodu OEM musi przenieść istniejące dane dotyczące powiadomień. o tym, czy aplikacja może wysyłać powiadomienia, do systemu uprawnień w czasie działania. OEM musi też utrzymywać istniejące interfejsy API w systemie powiadomień, które będą wyświetlać te dane deweloperom aplikacji.
Zmiany w systemach powiadomień i uprawnień są oparte wymagać zgody na korzystanie z powiadomień użytkownika. opisane w sekcji Wskazówki implementacji.
Sposób działania powiadomień użytkownika w modelu akceptacji
Tabela poniżej pokazuje działanie powiadomień w różnych aplikacjach w wersji na urządzenia z Androidem 13:
Urządzenie z Androidem 13 | Aplikacje kierowane na Androida 13 lub nowszego | Aplikacje kierowane na wersje Androida starsze niż 13 |
---|---|---|
Nowa instalacja | Powiadomienia będą blokowane, dopóki aplikacja nie o to poprosi.
Aplikacje określają, kiedy poprosić o uprawnienia. |
Powiadomienia będą blokowane, dopóki system operacyjny nie o to poprosi.
O uprawnienia pyta się przy pierwszym uruchomieniu aplikacji. |
Istniejąca aplikacja (aktualizacja) | Powiadomienia są dozwolone, dopóki aplikacja nie o to poprosi.
Uprawnienia tymczasowe są przyznawane do momentu, aż aplikacja poprosi o to podczas pierwszego kwalifikującego się uruchomienia. |
Powiadomienia są dozwolone, dopóki system operacyjny nie o to poprosi.
Uprawnienia tymczasowe są przyznawane do momentu pierwszego uruchomienia aplikacji. |
Wytyczne dotyczące implementacji
Informacje o implementacji znajdziesz tutaj: usługa powiadomień, usługa zezwoleń oraz usługa zasad. Aby wdrożyć wyjątki dotyczące domyślnych modułów obsługi uprawnień znajdziesz na stronie Uprawnienia czasu działania.
Podczas wdrażania przestrzegaj tych wskazówek dotyczących powiadomień dla użytkowników w przypadku aplikacji kierowanych na pakiety SDK na Androida 13 i starsze wersje:
- Świeżo zainstalowane aplikacje na urządzeniu z Androidem 13 muszą
Nie może wysyłać powiadomień, dopóki użytkownik nie wyrazi zgody na prośbę o zgodę.
- Jeśli aplikacja jest kierowana na wersje Androida 13 powiadomienia muszą być blokowane, dopóki aplikacja nie pojawi się na ekranie. określa, czy i kiedy użytkownik ma prosić o zgodę.
- Jeśli aplikacja jest kierowana na wersje starsze niż Android 13, powiadomienia muszą być zablokowane do jest pytany przez system operacyjny. System operacyjny musi wyświetlić prośbę o uprawnienie przy pierwszym uruchomieniu aplikację.
Wszystkie aplikacje, które istniały na urządzeniu przed uaktualnieniem do Androida 13 lub innej aplikacji, która została przywrócona przy użyciu kopii zapasowej i przywracania, musi mieć uprawnienia na wysyłanie powiadomień, dopóki użytkownik uruchamia aktywność z tej aplikacji.
Aplikacje kierowane na pakiet SDK w wersji Androida 13 lub wyższej, jeśli użytkownik nie dostosował wcześniej ustawień tej aplikacji na poziomie aplikacji lub
NotificationChannel
, unieważnij tymczasowe uprawnienia przyznanych uprawnień. Aplikacje muszą prosić użytkownika o zgodę, zanim zostaną zezwolono na dalsze wysyłanie powiadomień.Jeśli uaktualniona aplikacja kierowana na Androida 13 nie obecnie użytkownik ma zgodę na wyświetlanie powiadomień w ramach tymczasowego uaktualnienia a użytkownik co najmniej raz uruchomił aplikację, musi wyświetlać prośba o zgodę na wyświetlanie powiadomień, zanim będzie mogła działać na pierwszym planie usług Google.
W przypadku aplikacji, których docelowy pakiet SDK zawiera wersje starsze niż Android 13 przechwytywanie pierwsze uruchomienie działania po utworzeniu przez aplikację co najmniej jednego zasobu
NotificationChannel
do wyświetlania prośby o uprawnienia z pytaniem, czy użytkownik chce otrzymywać powiadomienia z aplikacji.Jeśli użytkownik wcześniej dostosował ustawienia powiadomień na stronie lub poziom
NotificationChannel
w przypadku aplikacji na urządzeniu, na którym uaktualniono wersję, przywracana jest kopia zapasowa na urządzenie, należy przenieść ustawienie na poziomie aplikacji na system uprawnień z flagąFLAG_PERMISSION_USER_SET
. To już wszystko prośba o zgodę na wyświetlanie powiadomień musi być wyświetlana użytkownikowi, chyba że aplikacja wyraźnie prosi o to.
Tworzenie i przywracanie kopii zapasowej musi być zgodne wstecz i do przodu między Urządzenie z Androidem 13 i urządzeniem ze starszego systemu operacyjnego wersji. Tworzenie kopii zapasowej danych wygenerowanych na Androidzie 13 to urządzenie musi przywrócić wcześniejszą wersję systemu operacyjnego oraz utworzyć kopię zapasową danych Na urządzeniu z Androidem 13 należy przywrócić wersję systemu operacyjnego.
Powiadomienia o multimediach związane z trwającym odtwarzaniem muszą być wykluczone z poziomu zgody na wyświetlanie powiadomień.
Weryfikowanie zmian w systemach powiadomień i uprawnień
Aby sprawdzić implementację, przeprowadź te testy:
testy jednostkowe opisane w:
PreferencesHelperTest
,NotificationManagerServiceTest
Każdy test ręczny, który testuje uaktualnienia oraz tworzenie i przywracanie kopii zapasowych.
Wszelkie testy uprawnień CTS i systemu powiadomień, które wysyłają powiadomienia. Niektóre z tych testów znajdują się w folderze cts/tests/tests/permission/, notificationManagerTest.java, oraz cts/tests/tests/notificationlegacy/.