Android 13 (poziom API 33) i nowsze wersje obsługują uprawnienie w czasie działania umożliwiające wysyłanie niezwolnionych powiadomień (w tym z usług działających na pierwszym planie) z aplikacji:
POST_NOTIFICATIONS
.
Ta zmiana pomaga użytkownikom skupić się na powiadomieniach, które są dla nich najważniejsze.
Zdecydowanie zalecamy jak najszybsze przejście na Androida 13 lub nowszego aby skorzystać z dodatkowej kontroli i elastyczności funkcji. Jeśli nadal kierujesz aplikację na Androida 12L (poziom interfejsu API 32) lub starszego, tracisz pewną elastyczność w sposobie wyrażania zgody na uprawnienia w kontekście funkcjonalności aplikacji.
Zadeklaruj uprawnienia
Aby poprosić aplikacji o zgodę na wyświetlanie powiadomień, zmień aplikację na kierować reklamy na Androida 13 i przeprowadzić podobny proces żądanie innych uprawnień w czasie działania, opisane w kolejnych sekcjach.
Uprawnienia potrzebne do korzystania z zadeklaruj w pliku manifestu aplikacji pojawia się w następującym fragmencie kodu:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
Funkcje aplikacji zależą od wyboru użytkownika w oknie uprawnień
W tym oknie użytkownicy mogą wykonać te czynności:
- Wybierz Zezwól.
- Wybierz Nie zezwalaj
- Przesuń palcem poza okno bez naciskania żadnego z przycisków
W sekcjach poniżej opisujemy, jak aplikacja ma się zachowywać w zależności od działania użytkownika.
Użytkownik klika „Zezwól”
Jeśli użytkownik wybierze opcję zezwalaj, aplikacja będzie mogła:
- Wysyłaj powiadomienia. Wszystkie kanały powiadomień są dozwolone.
- Publikuj powiadomienia związane z pierwszym planem usługi. Te powiadomienia wyświetlają się w panelu powiadomień.
Użytkownik wybiera „Nie zezwalaj”
Jeśli użytkownik wybierze opcję Nie zezwalaj, aplikacja nie będzie mogła wysyłać powiadomienia, chyba że kwalifikują się do zwolnienia. Wszystkie kanały powiadomień są zablokowane z wyjątkiem tych, które są przypisane do kilku konkretnych ról. Jest to podobne do tego, co dzieje się, gdy użytkownik ręcznie wyłączy wszystkie powiadomienia z aplikacji w ustawieniach systemu.
Uwaga: jeśli Twoja aplikacja jest przeznaczona na Androida w wersji 12L lub niższej, a użytkownik kliknie Nie zezwalaj, nawet tylko raz, nie wyświetli się ponownie żadna prośba, dopóki nie nastąpi jedno z tych zdarzeń:
- Użytkownik odinstaluje i ponownie zainstaluje aplikację.
- Aktualizujesz aplikację, aby była kierowana na Androida 13 lub nowszego.
Użytkownik odsuwa okno dialogowe
Jeśli użytkownik zamknie okno dialogowe, czyli nie wybierze opcji Zezwalaj ani Nie zezwalaj, stan uprawnienia do wysyłania powiadomień się nie zmieni.
Wpływ na nowo zainstalowane aplikacje
Jeśli użytkownik zainstaluje Twoją aplikację na urządzeniu z Androidem 13 lub nowszego, powiadomienia są domyślnie wyłączone. Aplikacja musi poczekać do wysyłania powiadomień, dopóki nie poprosisz użytkownika o nowe uprawnienia, przyznaje te uprawnienia aplikacji.
Czas wyświetlenia okna uprawnień zależy od celu aplikacji Wersja pakietu SDK:
- Jeśli Twoja aplikacja jest kierowana na Androida 13 lub nowszego, nad wyświetlaniem okna uprawnień. Wykorzystaj tę okazję, aby wyjaśnić użytkownikom, dlaczego aplikacja potrzebuje tego uprawnienia, i zachęcić ich do jego przyznania.
- Jeśli Twoja aplikacja jest kierowana na Androida 12L (poziom interfejsu API 32) lub starszego, system wyświetla okno z prośbą o uprawnienia za każdym razem, gdy aplikacja uruchamia aktywność po utworzeniu kanału powiadomień lub gdy uruchamia aktywność, a następnie tworzy pierwszy kanał powiadomień. Zwykle jest to uruchomienie aplikacji.
Wpływ na aktualizacje dotychczasowych aplikacji
Aby zminimalizować zakłócenia związane z uprawnieniami do wyświetlania powiadomień, system automatycznie wstępnie przyznaje uprawnienia wszystkim użytkownikom, odpowiednich aplikacji, gdy użytkownik przejdzie na Androida w wersji 13 lub nowszej. Innymi słowy, aplikacje te mogą nadal mogą wysyłać powiadomienia do użytkowników, a użytkownicy nie zobaczą prośby o pozwolenie w czasie działania.
Kryteria kwalifikacji do wstępnego przyznania uprawnień
Aby aplikacja kwalifikowała się do automatycznego wstępnego przyznania uprawnień, musi mieć istniejący kanał powiadomień, a powiadomienia nie mogą być wyłączone przez użytkownika na urządzeniu z Androidem w wersji 12L lub starszej.
Jeśli użytkownik wyłączył powiadomienia w aplikacji na urządzeniu, które działa 12L lub mniej, odmowa dostępu utrzymuje się, gdy urządzenie uaktualnienia do Androida 13 lub nowszego.
Wyjątki
Ta sekcja zawiera zestaw powiadomień i aplikacji, które nie są objęte zmianą zachowania uprawnień powiadomień. Na Androidzie 13 (API na poziomie 33) lub nowszym, jeśli użytkownik odmówi udzielenia uprawnień do wysyłania powiadomień, nadal będzie widzieć powiadomienia związane z usługami na pierwszym planie w Menedżerze zadań, ale nie będzie ich widzieć w schowku powiadomień.
Sesje multimediów
Powiadomienia dotyczące: sesji multimedialnych są wykluczeni z tej zmiany w działaniu.
aplikacje skonfigurowane do samodzielnego zarządzania połączeniami telefonicznymi;
Jeśli aplikacja sama zarządza połączeniami telefonicznymi, nie potrzebuje uprawnienia POST_NOTIFICATIONS
, aby wysyłać powiadomienia w stylu Notification.CallStyle
.
System uznaje, że aplikacja została skonfigurowana pod kątem samodzielnego zarządzania telefonem jeśli wykona każdą z tych czynności:
- Deklaruje uprawnienie
MANAGE_OWN_CALLS
. - Implementuje interfejs
ConnectionService
. - Rejestruje się u dostawcy usług telekomunikacyjnych urządzenia, dzwoniąc na numer
registerPhoneAccount()
.
Testowanie aplikacji
Możesz sprawdzić, jak uprawnienia do wysyłania powiadomień wpływają na Twoją aplikację, gdy jest ona po raz pierwszy używana na urządzeniu z Androidem 13 lub nowszym. obserwujesz zestawy poleceń Android Debug Bridge (ADB)pozwalają na symulację najczęstszych wyborów użytkownika i uaktualnień urządzeń. bez konieczności resetowania urządzenia testowego:
Aplikacja została niedawno zainstalowana na urządzeniu, które działa Android 13 lub nowszy:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Użytkownik pozostawia włączone powiadomienia, gdy aplikacja jest zainstalowana na urządzenia o pojemności 12L lub niższej, uaktualnienia do Androida 13 lub nowszego:
adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
użytkownik ręcznie wyłącza powiadomienia, gdy aplikacja jest zainstalowana na urządzenia o pojemności 12L lub niższej, uaktualnienia do Androida 13 lub nowszego:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Sprawdzone metody
W tej sekcji opisaliśmy kilka sposobów na efektywne wykorzystanie w aplikacji nowego uprawnienia dotyczącego powiadomień.
Zaktualizuj docelową wersję pakietu SDK aplikacji
Aby zapewnić aplikacji większą elastyczność w zakresie wyświetlania okna uprawnień, zaktualizuj aplikację, aby była kierowana na Androida 13 lub nowszego.
Poczekaj na wyświetlenie prośby o zgodę na wyświetlanie powiadomień
Zanim poprosisz użytkowników o przyznanie jakichkolwiek uprawnień, pozwól im się zapoznać z Twoją aplikacją.
Nowi użytkownicy mogą chcieć zapoznać się z aplikacją i sprawdzić, jakie korzyści daje każde powiadomienie. Możesz wyświetlić prośbę o przyznanie uprawnień w reakcji na działanie użytkownika. Poniższa lista zawiera kilka przykładów tego, kiedy to dobry moment na wyświetlenie prośby o zgodę na wyświetlanie powiadomień:
- Użytkownik klika przycisk „dzwonek”.
- Użytkownik decyduje się na obserwowanie czyjegoś konta w mediach społecznościowych.
- Użytkownik przesyła zamówienie na jedzenie z dowozem.
Ilustracja 1 przedstawia zalecany proces wysyłania żądania powiadomienia
uprawnienia. O ile
shouldShowRequestPermissionRationale()
zwraca true
, aplikacja nie musi wyświetlać środkowego ekranu –
ma tekst „Otrzymuj powiadomienia!”.
Możesz też ustawić prośbę o ocenę po tym, jak użytkownicy zapoznają się z Twoją aplikacją. Możesz na przykład poczekać, aż użytkownik uruchomi aplikację po raz trzeci lub czwarty.
shouldShowRequestPermissionRationale()
zwraca wartość true
.
Uzyskiwanie uprawnień w kontekście
Jeśli w aplikacji prosisz o uprawnienia dotyczące powiadomień, rób to w odpowiednim kontekście, aby wyraźnie wskazać, do czego służą powiadomienia i dlaczego użytkownik powinien wyrazić zgodę na ich otrzymywanie. Na przykład aplikacja poczty e-mail może zawierać opcje wysyłania powiadomień o każdym nowym e-mailu lub tylko o tych, w których użytkownik jest jedynym odbiorcą.
Wykorzystaj tę okazję, aby poinformować użytkowników o swoich zamiarach. Dzięki temu łatwiej będzie im zezwolić na wysyłanie powiadomień przez Twoją aplikację.
Sprawdzanie, czy aplikacja może wysyłać powiadomienia
Zanim aplikacja wyśle powiadomienie, sprawdź, czy użytkownik włączył powiadomienia. Aby to zrobić, wywołaj funkcję areNotificationsEnabled()
.
Odpowiedzialne korzystanie z uprawnień
Po otrzymaniu zgody na wysyłanie powiadomień pamiętaj, aby korzystać z tego uprawnienia w odpowiedzialny sposób. Użytkownicy mogą zobaczyć liczbę powiadomień wysyłanych codziennie przez Twoją aplikację oraz w każdej chwili mogą cofnąć uprawnienia.