W pliku manifestu aplikacji zadeklaruj każdą usługę na pierwszym planie za pomocą elementu <service>
. W przypadku każdej usługi użyj atrybutu android:foregroundServiceType
, aby zadeklarować, jakiego rodzaju pracę wykonuje usługa.
Dodatkowo poproś o wszystkie uprawnienia wymagane przez usługi działające na pierwszym planie.
Zgodność wersji
Wymagania dotyczące deklarowania usług działających na pierwszym planie i prośby o uprawnienia różnią się w zależności od docelowego poziomu interfejsu API aplikacji. Na tej stronie znajdziesz wymagania dotyczące aplikacji kierowanych na interfejs API na poziomie 34 lub wyższym. Informacje o zmianach w usługach działających na pierwszym planie w starszych wersjach platformy znajdziesz w artykule Zmiany w usługach działających na pierwszym planie.
Deklarowanie usług na pierwszym planie w pliku manifestu aplikacji
Poniższy kod pokazuje, jak zadeklarować usługę na pierwszym planie do odtwarzania multimediów. Możesz używać takiej usługi do odtwarzania muzyki.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Najważniejsze informacje o kodzie
W tym przykładzie usługa ma tylko jeden typ:
media
. Jeśli do Twojej usługi pasuje kilka typów, rozdziel je operatorem|
. Jeśli na przykład Twoja usługa korzysta z kamery i mikrofonu, zadeklaruj to w ten sposób:android:foregroundServiceType="camera|microphone"
W zależności od tego, na jaki poziom interfejsu API jest kierowana aplikacja, może być wymagane zadeklarowanie usług działających na pierwszym planie w pliku manifestu aplikacji. Wymagania dotyczące poszczególnych poziomów interfejsu API opisano w sekcji Zmiany w usługach na pierwszym planie.
Jeśli spróbujesz utworzyć usługę działającą na pierwszym planie, a jej typ nie jest zadeklarowany w pliku manifestu, system zgłosi błąd
MissingForegroundServiceTypeException
po wywołaniu funkcjistartForeground()
.Nawet jeśli nie jest to wymagane, zalecamy zadeklarowanie wszystkich usług na pierwszym planie i podanie ich typów.
Prośba o uprawnienia usługi działającej na pierwszym planie
Poniższy kod pokazuje, jak poprosić o uprawnienia do usługi na pierwszym planie, która korzysta z aparatu.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
<application ...>
...
</application>
</manifest>
Najważniejsze informacje o kodzie
- Ten kod korzysta ze sprawdzonych metod w przypadku aplikacji kierowanej na poziom API 34 lub nowszy.