Uprawnienia czasu działania powiadomień

Android 13 (poziom API 33) i nowszy obsługuje uprawnienia środowiska wykonawczego do wysyłania niezwolnione powiadomienia (w tym powiadomienia dotyczące usług działających na pierwszym planie) z aplikacji: POST_NOTIFICATIONS Ta zmiana pozwoli użytkownikom skupić się na powiadomieniach, które są dla nich najważniejsze .

Zdecydowanie zalecamy jak najszybsze przejście na Androida 13 lub nowszego jak najlepiej skorzystać z dodatkowej kontroli i elastyczności funkcji. Jeśli nadal będziesz kierować kampanię na wersję 12L (poziom interfejsu API 32) lub niższy, utracisz elastyczność dzięki prośbowi o uprawnienia w kontekście .

Zadeklarowanie uprawnień

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>

Możliwości aplikacji zależą od wyboru użytkownika w oknie uprawnień

W tym oknie użytkownicy mają następujące działania:

Sekcje poniżej opisują działanie aplikacji w zależności od tego, jakie działanie podjętych przez użytkownika.

Użytkownik klika „Zezwól”

Jeśli użytkownik wybierze opcję zezwalaj, aplikacja będzie mogła:

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, oprócz kilku role. Jest to podobne do zachowania, gdy użytkownik ręcznie przewróci wyłącz wszystkie powiadomienia dotyczące aplikacji w ustawieniach systemowych.

Uwaga: jeśli aplikacja jest kierowana na 12 l lub mniej a użytkownik kliknie Nie zezwalaj, nawet jeśli nie zobaczy tego pytania. aż do wystąpienia jednej z tych sytuacji:

  • Użytkownik odinstaluje i ponownie zainstaluje Twoją aplikację.
  • Aktualizujesz aplikację, aby była kierowana na Androida 13 lub nowszego.

Użytkownik opuszcza okno

Jeśli użytkownik przesunie palcem poza okno, czyli nie wybierze żadnej z tych opcji. allow (zezwól) lub nie allow (nie zezwalaj) – stan uprawnień do wyświetlania powiadomień nie: .

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ę możliwość, aby wyjaśnić użytkownikom, dlaczego aplikacja potrzebuje tych uprawnień. i zachęcanie ich do tego.
  • Jeśli Twoja aplikacja jest kierowana na wersję 12L (poziom interfejsu API 32) lub niższy, system pokazuje okna z uprawnieniami przy pierwszym uruchomieniu aplikacji po tym, jak utwórz kanał powiadomień lub gdy aplikacja rozpoczyna aktywność, a następnie tworzy swój pierwszy kanał powiadomień. Ten zwykle podczas uruchamiania aplikacji.

Wpływ na aktualizacje opublikowanych 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 przyznania wstępnego, musi mieć istniejący kanał powiadomień bez wyraźnego wyłączenia jego powiadomień przez użytkownika na urządzeniu z rozmiarem 12 l lub niższym.

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.

Zwolnienia

Ta sekcja zawiera zestaw powiadomień i aplikacji, które są zwolnione z obowiązku spełnienia zmiana sposobu działania prośby o zgodę na wyświetlanie powiadomień. Na urządzeniu z Androidem 13 (poziom interfejsu API 33) lub nowszym jeśli użytkownik odmówi zgody na wyświetlanie powiadomień, nadal będzie widzieć powiadomienia związane do usług działających na pierwszym planie w Menedżer zadań ale nie widzę ich w panelu 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 Twoja aplikacja samodzielnie zarządza połączeniami telefonicznymi, nie potrzebują uprawnień POST_NOTIFICATIONS, aby aplikacja mogła wysyłać wiadomości powiadomienia korzystające z Notification.CallStyle. stylu powiadomień.

System uznaje, że aplikacja została skonfigurowana pod kątem samodzielnego zarządzania telefonem jeśli wykona każdą z tych czynności:

  1. Deklaruje MANAGE_OWN_CALLS uprawnienia.
  2. Implementuje funkcję ConnectionService za pomocą prostego interfejsu online.
  3. Zarejestruje się u dostawcy telekomunikacyjnego urządzenia przez połączenie registerPhoneAccount()

Testowanie aplikacji

Możesz ocenić, jak uprawnienia do powiadomień wpływają na aplikację, gdy po raz pierwszy 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 opisano kilka sposobów korzystania z nowego powiadomienia i uzyskać więcej uprawnień w aplikacji.

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 zdać sobie sprawę korzyści wynikających z każdego pojedynczego powiadomienia. Dostępne opcje wyświetlenie prośby o uprawnienia w wyniku działania 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 „dzwonek alertu”. Przycisk
  • Użytkownik decyduje się obserwować czyjeś konto w mediach społecznościowych.
  • Użytkownik przesyła zamówienie z dostawą jedzenia.

Ilustracja 1 przedstawia zalecany proces wysyłania żądania powiadomienia uprawnienia. O ile shouldShowRequestPermissionRationale() zwraca true, aplikacja nie musi wyświetlać środkowego ekranu – ma tytuł „Powiadom mnie!”.

Możesz też skonfigurować prośbę tak, aby wyświetlała się, gdy umożliwisz użytkownikom zapoznać się z Twoją aplikacją. Na przykład możesz poczekać do momentu po trzecim lub czwartym uruchomieniu aplikacji przez użytkownika.

Gdy użytkownik się zaloguje, wyświetli się
   , aby otrzymywać powiadomienia o zmianach w podróży. Gdy użytkownik naciśnie
   Jestem w sekcji. Aplikacja prosi o nowe uprawnienia, co powoduje, że system
   pojawi się okno
Rysunek 1. Zalecany przepływ pracy oparty na użytkownikach o zgodę na wyświetlanie powiadomień. Środkowy ekran jest potrzebny tylko wtedy, gdy shouldShowRequestPermissionRationale() zwraca wartość true.

Uzyskiwanie uprawnień w kontekście

Gdy prosisz o zgodę na wyświetlanie powiadomień w aplikacji, zrób to we właściwym kontekst, by było jasne, do czego służą powiadomienia dlaczego użytkownik powinien się włączyć. Aplikacja do poczty e-mail może na przykład zawierać opcje wysyłania powiadomień o wszystkich nowych e-mailach lub tylko tych e-mailach, w których użytkownik jest tylko adresatem.

Wykorzystaj tę okazję, by jasno powiedzieć o swoich zamiarach, a użytkownicy aplikacji z dużym prawdopodobieństwem, że przyznają jej zgodę na wyświetlanie powiadomień.

Sprawdzanie, czy aplikacja może wysyłać powiadomienia

Zanim aplikacja wyśle powiadomienie, sprawdź, czy użytkownik włączył tę funkcję powiadomienia z aplikacji. Aby to zrobić, zadzwoń: areNotificationsEnabled()

Odpowiedzialne korzystanie z uprawnień

Gdy otrzymasz zgodę na wysyłanie powiadomień, pamiętaj o użyciu uprawnień odpowiedzialnie. Użytkownicy mogą zobaczyć liczbę dziennych powiadomień wysyłanych przez Twoją aplikację wysyła i może on anulować to uprawnienie w dowolnym momencie.