Dokumentacja usługi na pierwszym planie opisuje bieżące działanie usług na pierwszym planie w Androidzie. Dokumentacja zawiera wskazówki dotyczące sprawdzonych metod w przypadku większości aplikacji, niezależnie od tego, czy są one kierowane do użytkowników najnowszej wersji Androida.
Ta strona zawiera opis niektórych ostatnich ważnych zmian w usługach na pierwszym planie oraz ich wpływ na aplikacje, które nie są kierowane na najnowszą wersję platformy Android. W wielu przypadkach sprawdzone metody, które były opcjonalne w przypadku aplikacji kierowanych na niższe poziomy interfejsu API, stają się obowiązkowe w przypadku aplikacji kierowanych na wyższe poziomy interfejsu API.
Android 9 (poziom 28 interfejsu API)
Android 9 wprowadza uprawnienie FOREGROUND_SERVICE
. Aplikacje działające na Androidzie 9, które korzystają z usług na pierwszym planie, muszą mieć to uprawnienie.
Jeśli aplikacja kierowana na interfejs API na poziomie 28 lub wyższym próbuje utworzyć usługę na pierwszym planie bez prośby o uprawnienie FOREGROUND_SERVICE
, system zwraca błąd SecurityException
.
Android 10 (poziom 29 interfejsu API)
W przypadku aplikacji kierowanych na interfejs API na poziomie 29 lub wyższym obowiązują te wymagania:
- Jeśli usługi na pierwszym planie aplikacji korzystają z informacji o lokalizacji, aplikacja musi zadeklarować usługę z typem usługi
location
.
Android 11 (poziom 30 interfejsu API)
Aplikacje kierowane na interfejs API na poziomie 30 lub wyższym muszą spełniać te wymagania:
- Jeśli usługi na pierwszym planie aplikacji korzystają z kamery lub mikrofonu, aplikacja musi zadeklarować usługę z typem usługi
camera
lubmicrophone
.
Android 12 (poziom 31 interfejsu API)
Aplikacje kierowane na interfejs API na poziomie 31 lub wyższym muszą spełniać te wymagania:
- Aplikacje nie mogą uruchamiać usług na pierwszym planie, gdy są w tle, z kilkoma wyjątkami. Więcej informacji o wyjątkach od tej reguły znajdziesz w artykule Ograniczenia uruchamiania usługi na pierwszym planie z tła.
Android 14 (poziom 34 interfejsu API)
Aplikacje kierowane na interfejs API na poziomie 34 lub wyższym muszą spełniać te wymagania:
- Musisz zadeklarować wszystkie usługi na pierwszym planie wraz z ich typami.
- Aplikacje muszą poprosić o odpowiednie uprawnienia do wykonywania zadań przez usługę na pierwszym planie. Każdy typ usługi na pierwszym planie ma odpowiadający mu typ uprawnienia. Jeśli na przykład aplikacja uruchamia usługę na pierwszym planie, która korzysta z aparatu, musisz poprosić o uprawnienia
FOREGROUND_SERVICE
iFOREGROUND_SERVICE_CAMERA
. Jeśli aplikacja jest kierowana na interfejs API na poziomie 34 lub wyższym i nie prosi o odpowiednie uprawnienia, system zgłasza błądSecurityException
.
Android 15 (poziom 35 interfejsu API)
Aplikacje kierowane na interfejs API na poziomie 35 lub wyższym muszą spełniać te wymagania:
- Wprowadziliśmy nowe ograniczenia dotyczące czasu działania
dataSync
usługi na pierwszym planie. Te ograniczenia są opisane w sekcji Zachowanie usługi na pierwszym planie po przekroczeniu limitu czasu. Podobne ograniczenia dotyczą typu usługi na pierwszym planiemediaProcessing
(nowego w Androidzie 15). - Usługi działające na pierwszym planie
BOOT_COMPLETED
nie mogą już uruchamiać niektórych usług działających na pierwszym planie. - Aplikacje, które mają uprawnienia
SYSTEM_ALERT_WINDOW
, mogą uruchamiać usługi na pierwszym planie w tle tylko wtedy, gdy mają widoczne okno nakładki (lub spełniają jedno z innych wyjątków od ograniczeń uruchamiania w tle). Wcześniej wyjątek dla tych aplikacji był szerszy.