Zmiany typów usług działających na pierwszym planie w Androidzie 15

W Androidzie 15 wprowadzamy te zmiany w typach usług na pierwszym planie:

Przetwarzane materiały

Typ usługi na pierwszym planie do zadeklarowania w pliku manifestu w sekcji
android:foregroundServiceType
mediaProcessing
Uprawnienia do zadeklarowania w pliku manifestu
FOREGROUND_SERVICE_MEDIA_PROCESSING
stała wartość przekazywana do startForeground(),
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
Wymagania wstępne środowiska wykonawczego
Brak
Opis

Usługa do wykonywania czasochłonnych operacji na zasobach multimedialnych, takich jak konwertowanie multimediów na różne formaty. System zezwala tej usłudze na ograniczony czas działania. W normalnych okolicznościach limit czasu wynosi 6 godzin na 24 godziny. Ten limit jest wspólny dla wszystkich mediaProcessing usług na pierwszym planie w aplikacji.

Aplikacja powinna ręcznie zatrzymać usługę przetwarzania multimediów w takich sytuacjach:

Po upływie limitu czasu system wywołuje metodę Service.onTimeout(int, int) usługi. W tym momencie usługa ma kilka sekund na wywołanie funkcji Service.stopSelf(). Jeśli usługa nie wywołuje funkcji Service.stopSelf(), wystąpi ANR z komunikatem o błędzie: „Usługa na pierwszym planie <fgs_type> nie zatrzymała się w czasie swojego limitu czasu: <component_name>”.

Uwaga: funkcja Service.onTimeout(int, int) jest niedostępna na Androidzie 14 lub starszym. Na urządzeniach z tymi wersjami, jeśli usługa przetwarzania multimediów osiągnie limit czasu, system natychmiast przeniesie aplikację do pamięci podręcznej. Z tego powodu aplikacja nie powinna czekać na powiadomienie o przekroczeniu limitu czasu. Zamiast tego należy zakończyć usługę na pierwszym planie lub jak najszybciej zmienić ją na usługę działającą w tle.

Aparat

Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi działających na pierwszym planie aparatu z odbiornika BOOT_COMPLETED. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.

Synchronizowanie danych

Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi synchronizacji danych na pierwszym planie z odbiornika BOOT_COMPLETED. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.

Odtwarzanie multimediów

Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi odtwarzania multimediów na pierwszym planie z odbiornika BOOT_COMPLETED. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.

Wyświetlanie multimediów

Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi dotyczącej wyświetlania multimediów na pierwszym planie z odbiornika BOOT_COMPLETED. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.

mikrofon

Aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego nie mogą uruchamiać usługi na pierwszym planie z mikrofonem z odbiornika BOOT_COMPLETED. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.

Rozmowa telefoniczna

Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi na pierwszym planie dotyczącej połączeń telefonicznych z poziomu odbiornika BOOT_COMPLETED. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.