Android Academy · Lekcja

Uprawnienie do powiadomień w czasie działania

Poproś o uprawnienie do powiadomień na Androidzie 13+

Lekcja 4 z 413 kroki

Uprawnienie do powiadomień w czasie działania to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.

Uprawnienie do powiadomień

Począwszy od Androida 13 (API 33), aplikacje muszą poprosić o uprawnienie przyznawane w czasie działania aplikacji do publikowania powiadomień: POST_NOTIFICATIONS. Bez tego uprawnienia powiadomienia są blokowane bez informowania użytkownika.

Dlaczego je dodano

Przed Androidem 13 powiadomienia były domyślnie włączone, a użytkownicy musieli zagłębiać się w Ustawieniach, aby wyciszyć uciążliwe aplikacje. Uprawnienie przyznawane w czasie działania aplikacji odwraca tę sytuację: użytkownicy muszą teraz wyraźnie wyrazić zgodę, co ogranicza spam.

Deklarowanie w manifeście

Najpierw zadeklaruj uprawnienie w pliku AndroidManifest.xml. Jest to wymagane w każdej obsługiwanej wersji, mimo że okno z prośbą pojawia się dopiero w API 33 lub nowszym.

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

To uprawnienie niebezpieczne

POST_NOTIFICATIONS jest sklasyfikowane jako uprawnienie przyznawane w czasie działania aplikacji (niebezpieczne), dlatego w Androidzie 13 lub nowszym trzeba poprosić użytkownika o jego przyznanie i obsłużyć jego odpowiedź, podobnie jak w przypadku aparatu lub lokalizacji.

Działanie zależne od wersji

Różnice między wersjami mają znaczenie:

  • API 33 i nowsze: uprawnienie trzeba uzyskać w czasie działania aplikacji; odmowa oznacza brak powiadomień
  • API 32 i starsze: powiadomienia są domyślnie dozwolone; okno z prośbą nie jest potrzebne

Sprawdzanie przed żądaniem

Proś o uprawnienie tylko w Androidzie 13 lub nowszym i tylko wtedy, gdy nie zostało jeszcze przyznane. Zabezpiecz wywołanie sprawdzeniem wersji.

val needsRequest = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
    ContextCompat.checkSelfPermission(
        context, Manifest.permission.POST_NOTIFICATIONS
    ) != PackageManager.PERMISSION_GRANTED

Żądanie w Compose

Użyj tego samego interfejsu Activity Result API, którego nauczył(a) się Pan/Pani przy innych uprawnieniach: launchera z kontraktem RequestPermission, uruchamianego z wartością POST_NOTIFICATIONS.

val launcher = rememberLauncherForActivityResult(
    ActivityResultContracts.RequestPermission()
) { granted ->
    // update UI based on whether notifications are allowed
}

Uruchamianie żądania

Uruchamiaj żądanie tylko w API 33 lub nowszym, najlepiej wtedy, gdy użytkownik wykonuje działanie, które skorzysta z powiadomień, a nie bezwarunkowo przy uruchomieniu aplikacji.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    launcher.launch(Manifest.permission.POST_NOTIFICATIONS)
}

Prośba w odpowiednim kontekście

Podobnie jak w przypadku wszystkich uprawnień, proś o nie w odpowiednim kontekście. Na przykład poproś po włączeniu przez użytkownika funkcji takiej jak przypomnienia i wyjaśnij korzyści, zamiast wyświetlać prośbę natychmiast po otwarciu aplikacji.

Elegancka obsługa odmowy

Jeśli użytkownik odmówi, aplikacja nie powinna przestać działać. Wyłącz przełączniki zależne od powiadomień albo wyświetl informację, że powiadomienia są wyłączone, wraz z linkiem do systemowych Ustawień, jeśli użytkownik będzie chciał włączyć je później.

Docelowy SDK wymusza egzekwowanie

Wymóg uzyskania uprawnienia w czasie działania aplikacji obowiązuje, gdy aplikacja ustawia docelowy poziom API 33 lub nowszy. Jeśli starsza aplikacja działa w Androidzie 13, system może automatycznie wyświetlić prośbę przy pierwszym opublikowaniu powiadomienia, ale mimo to należy jawnie poprosić o uprawnienie.

Szybkie sprawdzenie

Sprawdź, czy rozumie Pan/Pani uprawnienie do powiadomień przyznawane w czasie działania aplikacji.

Podsumowanie

Obsłużono uprawnienie do powiadomień:

  • Android 13 lub nowszy wymaga uprawnienia POST_NOTIFICATIONS przyznawanego w czasie działania aplikacji
  • Zadeklaruj je w manifeście i poproś o nie za pomocą Activity Result API
  • Zabezpiecz żądania sprawdzeniem wersji i proś o uprawnienie w odpowiednim kontekście
  • Zapewnij poprawne działanie aplikacji mimo odmowy

Kurs dotyczący powiadomień został ukończony.

Bezpłatny start

Ucz się Kotlin dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
36
Lekcje
152

Często zadawane pytania

Czy lekcja „Uprawnienie do powiadomień w czasie działania” jest bezpłatna?

Tak — pełny tekst „Uprawnienie do powiadomień w czasie działania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Uprawnienie do powiadomień w czasie działania”?

Poproś o uprawnienie do powiadomień na Androidzie 13+ Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Android Academy?

Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Uprawnienie do powiadomień w czasie działania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?

Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kanały powiadomień
  2. Tworzenie powiadomienia
  3. Akcje i deep linki
  4. Uprawnienie do powiadomień w czasie działania
← Powrót do Android Academy