Aby umożliwić deweloperom tworzenie aplikacji, które zapewniają spójne wrażenia użytkownika, wprowadzamy dodatkowe typy usług na pierwszym planie oraz nowy zbiór związanych z nimi zasad. W tym artykule wyjaśniamy nadchodzące wymagania dotyczące usług na pierwszym planie i sposób deklarowania informacji na ich temat w Konsoli Play. Opisujemy także wymagania dotyczące korzystania z powiadomień intencji pełnoekranowej.
Wymagania dotyczące usług na pierwszym planie w Androidzie 14
Aby pomóc Ci określić, które przypadki użycia są odpowiednie dla usług działających na pierwszym planie, i sprecyzować intencje działania aplikacji w tle, Android 14 i nowsze wersje wymagają wykonania tych czynności:
- Zadeklaruj typy usług na pierwszym planie w pliku manifestu. Musisz to zrobić w przypadku każdej usługi na pierwszym planie, której zamierzasz używać.
- Jeśli ma to zastosowanie do wybranego typu, zadeklaruj uprawnienie usługi na pierwszym planie odpowiednie dla danego typu i o nie poproś.
W sekcji poświęconej uprawnieniom do usług na pierwszym planie w zasadach dotyczących nadużywania urządzenia i sieci znajdziesz szczegółowe informacje na temat kryteriów wymaganych do korzystania z usług na pierwszym planie. Typy usług na pierwszym planie musisz zadeklarować w przypadku aktualizacji na Androida 14.
Deklarowanie informacji o usłudze na pierwszym planie w Konsoli Play
Jeśli kierujesz swoje aplikacje na Androida 14 lub nowszego, używane typy usług na pierwszym planie musisz zadeklarować w nowej deklaracji na stronie Zawartość aplikacji (Zasady > Zawartość aplikacji) w Konsoli Play.
W przypadku każdego zadeklarowanego typu usługi na pierwszym planie musisz wykonać te czynności:
- Podaj opis funkcji aplikacji, która używa danego typu usługi na pierwszym planie.
- Opisz wpływ na użytkowników, jeśli:
- zadanie zostanie odłożone w czasie przez system (nie rozpocznie się od razu); lub
- zadanie zostanie zakłócone przez system (wstrzymane lub ponownie uruchomione).
- Dodaj link do filmu przedstawiającego daną funkcję usługi na pierwszym planie. Film powinien przedstawiać czynności, które użytkownik musi wykonać w aplikacji, aby włączyć tę funkcję.
- Wybierz konkretne zastosowanie dla każdego typu usługi na pierwszym planie. Dostępna będzie gotowa lista zastosowań do wyboru. Wybrane zastosowania przypisane do typów usług na pierwszym planie znajdziesz na wykresie poniżej. Podana lista jest niepełna. Jeśli nie widzisz swojego zastosowania, możesz wpisać je ręcznie.
W przypadku niektórych zastosowań zalecamy używanie alternatywnych interfejsów API. Listę takich zastosowań i ich alternatywnych zalecanych interfejsów API znajdziesz na stronie dla deweloperów aplikacji na Androida.
Uwaga: poniższa lista jest niepełna. Aby określić, czy dostęp do usług na pierwszym planie jest odpowiedni w przypadku niewymienionych poniżej zastosowań, zapoznaj się z zasadami dotyczącymi uprawnień usług działających na pierwszym planie.
Typ usługi działającej na pierwszym planie | Zastosowania | Opisy i przykłady |
---|---|---|
TYPE_CAMERA |
Odtwarzanie w tle transmisji z aparatu | Dalsze korzystanie w tle z aparatu. Dotyczy to na przykład aplikacji do obsługi czatu wideo, które umożliwiają wielozadaniowość. |
TYPE_CONNECTED_DEVICE |
Ciągłe przesyłanie danych na urządzenie zewnętrzne | Dotyczy to interakcji z urządzeniami zewnętrznymi, w tym przesyłania danych, które wymagają łączności Bluetooth, NFC, podczerwieni, USB lub połączenia sieciowego. Może to być na przykład urządzenie do noszenia, elektroniczna niania, zestaw słuchawkowy czy samochód. |
TYPE_DATA_SYNC |
Przesyłanie w sieci: tworzenie i przywracanie kopii zapasowej | Tej usługi należy używać w przypadku funkcji inicjowanych przez użytkownika. Może on na przykład wybrać konkretne zdjęcie i utworzyć jego kopię zapasową w chmurze lub włączyć codzienne automatyczne tworzenie kopii zapasowej wszystkich nowych zdjęć. |
Przesyłanie w sieci: przesyłanie lub pobieranie | Dotyczy to na przykład pobierania danych lub przetwarzania po stronie serwera. | |
Przetwarzanie lokalne: transkodowanie multimediów | Dotyczy to procesu konwertowania plików multimedialnych, takich jak dźwięk i obraz, z jednego formatu na inny (np. funkcje takie jak edytowanie wideo). | |
Przetwarzanie lokalne: importowanie lub eksportowanie | Obejmuje to migrację plików z karty SD. | |
Przetwarzanie lokalne: inne | Tej usługi należy używać do pracy inicjowanej przez użytkownika, a nie do wykonywania zwykłych zadań systemowych lub inicjowanych przez serwer. Dotyczy to na przykład szyfrowania czy zmiany rozmiaru. | |
TYPE_HEALTH |
Synchronizacja danych dotyczących zdrowia | Uwzględnia to synchronizowanie danych dotyczących zdrowia w aplikacjach z kategorii fitness. Synchronizacja może się odbywać pomiędzy aplikacjami lub służyć do zbierania danych z urządzenia śledzącego aktywność. Może to być licznik kroków lub tracker śledzący ćwiczenia. |
TYPE_LOCATION |
Aktualizacje lokalizacji w tle: udostępnianie lokalizacji inicjowane przez użytkownika | Może to być na przykład funkcja znajdowania znajomych lub śledzenie aktywności związanej z pojazdem. |
Aktualizacje lokalizacji w tle: nawigacja | Może to być na przykład ciągłe korzystanie z nawigacji samochodowej w Mapach czy śledzenie wspólnych przejazdów. | |
Geofencing | Dotyczy to definiowania parametrów wokół wybranych obszarów. | |
TYPE_MEDIA_PLAYBACK |
Odtwarzanie multimediów | Dotyczy to ciągłego odtwarzania dźwięku lub wideo w tle, włącznie z przesyłaniem strumieniowym. |
Wyświetlanie obrazu w obrazie | Dotyczy to minimalizowania multimediów podczas odtwarzania w tle. | |
TYPE_MEDIA_PROJECTION |
Wyświetlanie multimediów lub treści, a także strumieniowanie lub nagrywanie za pomocą interfejsu MediaProjection API | Dotyczy to wyświetlania multimediów na wyświetlaczu innym niż główny lub urządzeniach zewnętrznych przy użyciu interfejsów MediaProjection API, w tym na potrzeby strumieniowania. |
TYPE_MICROPHONE |
Dostęp do dźwięku w tle | Dotyczy to przechwytywania danych dźwiękowych, na przykład poleceń głosowych dla wirtualnego asystenta bez zapisywania, lub nagrywanie głosu. |
TYPE_PHONE_CALL |
Dzwonienie: interfejsy API sieci komórkowej / VoiP / telekomunikacyjnej | Dotyczy to obsługi różnych funkcji telefonu w zakresie nawiązywania połączeń. |
TYPE_REMOTE_MESSAGING |
Przekazywanie komunikacji tekstowej na inne urządzenie | Dotyczy to pomocy (nieciągłej) w wykonywaniu przez użytkownika zadań związanych z wiadomościami przy przełączaniu się na inne urządzenie. Obejmuje na przykład zezwalanie użytkownikom na wysyłanie SMS-ów za pomocą klienta internetowego przez zeskanowanie kodu QR czy nawiązanie połączenia między klientem internetowym a telefonem. Dotyczy nie tylko SMS-ów. |
Deklaracja będzie dostępna od listopada 2023 roku. Damy Ci czas na jej uzupełnienie, zebranie opinii i wprowadzenie ewentualnych poprawek.
Wymagania dotyczące intencji pełnoekranowej w Androidzie 14
Możesz używać powiadomień intencji pełnoekranowej, aby udostępniać wiadomości o wysokim priorytecie, które wymagają natychmiastowej uwagi. Aby uprawnienia te dotyczyły tylko odpowiednich przypadków użycia o wysokim priorytecie, w Androidzie 14 wprowadzamy ograniczenia dotyczące korzystania z uprawnienia USE_FULL_SCREEN_INTENT
. Zmniejszenie liczby powiadomień w ten sposób zapewni użytkownikom lepsze wrażenia.
Jeśli używasz uprawnienia USE_FULL_SCREEN_INTENT
, od 31 maja 2024 r. musisz wypełnić deklarację w Konsoli Play i wskazać w niej, czy główna funkcjonalność aplikacji kwalifikuje się do automatycznego przyznania uprawnienia. Od 22 stycznia 2025 r. w przypadku aplikacji kierowanych na Androida 14 i nowsze wersje to uprawnienie będzie domyślnie włączone tylko w aplikacjach, które mają funkcje dzwonienia lub alarmu. Pozostałe aplikacje będą potrzebowały zgody użytkownika na korzystanie z uprawnienia FULL_SCREEN_INTENT
. W przypadku aplikacji, które nie mają wypełnionej deklaracji lub nie zostały zatwierdzone do włączenia domyślnego, deweloperzy muszą poprosić użytkowników o przyznanie uprawnień podczas nowej instalacji i łagodnie ograniczy działanie w przypadku odmowy.
Najczęstsze pytania
Co się zmienia w przypadku usług działających na pierwszym planie w Androidzie 14?Wprowadzamy kilka nowych typów usług działających na pierwszym planie oraz obowiązek deklarowania typu i odpowiednich uprawnień. Jeśli na przykład deklarujesz działającą na pierwszym planie usługę typu „aparat”, musisz też zadeklarować uprawnienie FOREGROUND_SERVICE_CAMERA. Usługi na pierwszym planie muszą być też zgodne z innymi wymaganiami opisanymi w naszych zasadach dotyczących nadużywania urządzenia lub sieci.
Wybierz typ usługi działającej na pierwszym planie, który najlepiej pasuje do jej planowanego użycia. Na przykład aplikacja do fitnessu, która śledzi ćwiczenia wykonywane przez użytkownika, może zadeklarować usługę na pierwszym planie typu „zdrowie”. W zależności od aplikacji możesz też wybrać wiele typów takich usług.
Jeśli aplikacje kierowane na Androida 14 korzystają z usługi na pierwszym planie, deweloperzy muszą zadeklarować dla niej odpowiednie uprawnienie. Przykładowo w przypadku aplikacji, która używa usługi na pierwszym planie typu „lokalizacja”, musisz zadeklarować uprawnienie FOREGROUND_SERVICE_LOCATION. Uprawnienia usługi na pierwszym planie, które odnoszą się do określonego typu takiej usługi, są określone jako normalne uprawnienia i przyznawane domyślnie podczas instalacji. Użytkownicy nie mogą anulować tych uprawnień.
W zależności od typu usługi na pierwszym planie mogą obowiązywać dodatkowe wymagania systemowe. Niektóre z nich to uprawnienia w czasie działania, których użycie wymaga wcześniejszego przyznania uprawnień przez użytkownika. Jeśli na przykład korzystasz z działającej na pierwszym planie usługi typu „lokalizacja”, użytkownik musi też przyznać uprawnienie ACCESS_COARSE_LOCATION lub ACCESS_FINE_LOCATION. Najbardziej aktualne informacje znajdziesz w dokumentacji.
Jeśli Twój przypadek użycia spełnia inne wymagania pozwalające na korzystanie z usługi na pierwszym planie (zgodnie z opisem w zasadach), w niektórych przypadkach możesz zadeklarować typ TYPE_SPECIAL_USE
. Wszystkie typy usług na pierwszym planie podlegają sprawdzeniu.
Zauważalne dla użytkownika oznacza, że użytkownik powinien mieć świadomość, że na jego urządzeniu uruchomione jest zadanie usługi na pierwszym planie. Użytkowników można uznać za świadomych, jeśli samodzielnie inicjują działanie – na przykład włączają utwór lub śledzą swój bieg. Aplikacja może również informować użytkowników o aktywności usługi na pierwszym planie, prezentując jasne i zgodne z prawdą powiadomienie na pasku zadań urządzenia.
Jeśli kierujesz aplikację na Androida starszego niż 14, nadal używaj atrybutu android:foregroundServiceType
w elemencie <service> pliku manifestu aplikacji.
Zadania przesyłania danych inicjowane przez użytkownika mają na celu uproszczenie przesyłania danych przez sieć. Obejmują one śledzenie ograniczeń i automatyczne zarządzanie blokadami wybudzenia. Działająca na pierwszym planie usługa typu dataSync może obejmować przesyłanie danych lokalnie lub przez sieć oraz przetwarzanie danych lokalnie na urządzeniu. Jeśli w Twoim przypadku dane są przesyłane przez sieć (np. Wi-Fi, mobilną transmisję danych lub Bluetooth) w odpowiedzi na wyraźne żądanie użytkownika, zalecamy użycie zadania przesyłania danych inicjowanego przez użytkownika zamiast usługi na pierwszym planie typu dataSync.
W przypadku Androida 14 uprawnienie USE_FULL_SCREEN_INTENT
zmieni się z normalnego na specjalne uprawnienie dostępu aplikacji. Tylko aplikacje, których główną funkcjonalnością jest działanie o wysokim priorytecie polegające na ustawianiu alarmów lub odbieraniu połączeń telefonicznych albo wideo, automatycznie otrzymają uprawnienie USE_FULL_SCREEN_INTENT
. Główna funkcjonalność aplikacji to jej podstawowe przeznaczenie, bez którego jest ona uznawana za niesprawną lub bezużyteczną. Inne aplikacje mogą nadal używać tego uprawnienia, ale tylko wtedy, gdy zostanie ono przyznane przez użytkownika.
Zmiany zaczną obowiązywać 31 maja 2024 r.
Jeśli Twoja aplikacja jest kierowana na Androida 14 lub nowszego, możesz zadeklarować, że jej główna funkcjonalność wymaga intencji pełnoekranowej. Możesz to zrobić na stronie Zawartość aplikacji (Zasady > Zawartość aplikacji) w Konsoli Play. Deklaracja będzie dostępna od kwietnia 2024 roku. Damy Ci odpowiednio dużo czasu na jej wypełnienie.