Ograniczenia intencji pełnoekranowej

W Androidzie 14 i nowszych wersjach, aby zapobiec spamowaniu reklamami i wyłudzaniu danych logowania, domyślne uprawnienie USE_FULL_SCREEN_INTENT do wysyłania powiadomień pełnoekranowych można przyznawać tylko aplikacjom, które mają funkcje dzwonienia i alarmu.

W przypadku wszystkich aplikacji instalowanych na Androidzie 14 uprawnienie USE_FULL_SCREEN_INTENT jest domyślnie włączone. Po zainstalowaniu Sklep Google Play cofa uprawnienia do intencji pełnoekranowej (FSI) dla aplikacji, które nie mają funkcji połączeń ani alarmu.

W przypadku aplikacji zainstalowanych na telefonach z Androidem 13 lub starszym uprawnienie USE_FULL_SCREEN_INTENT jest domyślnie włączone.

Zgoda użytkownika

W Androidzie 14 aplikacje mogą używać NotificationManager#canUseFullScreenIntent(), aby sprawdzić, czy mogą wysyłać powiadomienia pełnoekranowe. Aby uzyskać zgodę użytkownika na wysyłanie powiadomień pełnoekranowych, aplikacje używają ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT do uruchamiania ustawienia Zarządzaj intencjami pełnoekranowymi, jak pokazano na ilustracji 1:

fsi-ui

Rysunek 1. Interfejs umożliwiający aplikacjom wysyłanie intencji pełnoekranowych.

Ustawienie Zarządzaj intencjami pełnoekranowymi znajduje się w menu Ustawienia w sekcji Specjalny dostęp do aplikacji. W tym interfejsie użytkownicy mogą w razie potrzeby cofnąć to uprawnienie.

Wymagania dotyczące OEM

Na Androidzie 14 uprawnienia FSI są domyślnie włączone. Producenci OEM muszą określić, które aplikacje kwalifikują się do uprawnień FSI. Producenci OEM muszą zadbać o to, aby sklepy z aplikacjami innych firm ustawiały początkowe stany przyznania uprawnień FSI dla swoich aplikacji za pomocą PackageInstaller.SessionParams, a w szczególności parametrów PERMISSION_STATE_DEFAULT, PERMISSION_STATE_DENIEDPERMISSION_STATE_GRANTED.

Weryfikacja

Użyj testu CTS Verifier w NotificationFullScreenIntentVerifierActivity.java i testu CTS w NotificationManagerTest.java, aby sprawdzić limity FSI.

Testy ręczne

Aby ręcznie przetestować limity FSI w aplikacji, wykonaj te czynności:

  1. Zadeklaruj USE_FULL_SCREEN_INTENT w pliku AndroidManifest.xml aplikacji.
  2. Aby włączyć lub wyłączyć FSI, użyj ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT.
  3. Na telefonie testowym ręcznie włącz lub wyłącz uprawnienia użytkownika do powiadomień pełnoekranowych, jak pokazano na ilustracji 1.
  4. Wysyłanie powiadomienia FSI.
  5. Sprawdź wygląd powiadomienia pełnoekranowego w przypadku tych kombinacji uprawnień do intencji pełnoekranowej i trybów wyświetlania:
Uprawnienie FSI Odblokowany ekran Zablokowany ekran Poza ekranem Zawsze aktywny wyświetlacz (AOD)
Przyznane przez użytkownika Stałe powiadomienie z ostrzeżeniem z przyciskami w formie pigułki Uruchom FSI Uruchom FSI Uruchom FSI
Odmowa użytkownika HUN z przyciskami w formie pigułek na lata 60. HUN z przyciskami w formie pigułki wyświetla się na początku listy przez 60 sekund. Tryb AOD włącza się i wyświetla powiadomienie HUN z przyciskami przez 60 sekund. HUN z przyciskami w formie pigułek na lata 60.