Aby zapobiec spamowi reklamowemu i wyłudzaniu danych uwierzytelniających, począwszy od Androida 14, domyślne uprawnienie USE_FULL_SCREEN_INTENT
do wysyłania powiadomień na pełnym ekranie można przyznać tylko aplikacjom zapewniającym funkcje połączeń i alarmów.
Dla wszystkich aplikacji instalowanych na Androidzie 14 uprawnienie USE_FULL_SCREEN_INTENT
jest domyślnie włączone. Po instalacji Sklep Google Play cofa zezwolenie na korzystanie z trybu pełnoekranowego (FSI) w przypadku aplikacji, które nie obsługują funkcji połączeń ani alarmów.
W przypadku aplikacji zainstalowanych na telefonach z wersją Androida niższą niż 13 uprawnienie USE_FULL_SCREEN_INTENT
pozostaje domyślnie włączone.
Zezwolenie użytkownika
W systemie Android 14 aplikacje mogą używać NotificationManager#canUseFullScreenIntent()
, aby sprawdzić, czy mogą wysyłać powiadomienia na pełnym ekranie. Aby uzyskać pozwolenie użytkownika na wysyłanie powiadomień na pełnym ekranie, aplikacje używają ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
do uruchomienia ustawienia Zarządzaj intencjami na pełnym ekranie, jak pokazano na rysunku 1:
Rysunek 1. Interfejs umożliwiający aplikacjom wysyłanie intencji pełnoekranowych.
Ustawienie Zarządzaj intencjami pełnoekranowymi znajduje się w menu Ustawienia w obszarze Specjalny dostęp do aplikacji . Dzięki temu interfejsowi użytkownicy mogą w razie potrzeby odwołać to uprawnienie.
Wymagania OEM
W systemie Android 14 uprawnienia FSI dla aplikacji są domyślnie włączone. Producenci OEM muszą określić, które aplikacje kwalifikują się do uzyskania uprawnień FSI. Producenci OEM muszą upewnić się, że zewnętrzne sklepy z aplikacjami ustawiają początkowe stany przyznania uprawnień FSI dla swoich aplikacji za pomocą PackageInstaller.SessionParams
, w szczególności za pomocą parametrów PERMISSION_STATE_DEFAULT
, PERMISSION_STATE_DENIED
i PERMISSION_STATE_GRANTED
.
Walidacja
Użyj testu CTS Verifier w NotificationFullScreenIntentVerifierActivity.java
i testu CTS w NotificationManagerTest.java
, aby sprawdzić limity FSI.
Testy ręczne
Wykonaj poniższe kroki, aby ręcznie przetestować limity FSI w swojej aplikacji:
- Zadeklaruj
USE_FULL_SCREEN_INTENT
w plikuAndroidManifest.xml
swojej aplikacji. - Użyj
ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
, aby zarządzać ustawieniami włączania i wyłączania FSI. - Na telefonie testowym ręcznie przełącz uprawnienia użytkownika do powiadomień pełnoekranowych, jak pokazano na rysunku 1.
- Wyślij powiadomienie FSI.
- Sprawdź wygląd powiadomienia pełnoekranowego dla następujących kombinacji uprawnień FSI i trybów wyświetlania:
Zezwolenie FSI | Odblokowany ekran | Zablokowany ekran | Poza ekranem | Zawsze włączony wyświetlacz (AOD) |
Przyznane przez użytkownika | Stałe powiadomienie heads-up (HUN) za pomocą przycisków pigułek | Uruchom FSI | Uruchom FSI | Uruchom FSI |
Odrzucone przez użytkownika | HUN z guzikami pigułkowymi z lat 60-tych | HUN z pigułkami pojawia się na pierwszym miejscu listy od lat 60 | AOD włącza się, pokazuje HUN z przyciskami pigułek przez 60s | HUN z guzikami pigułkowymi z lat 60-tych |