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 określić, jakie zadania wykonuje usługa.
Dodatkowo poproś o uprawnienia potrzebne do usług na pierwszym planie.
Zgodność wersji
Wymagania dotyczące deklarowania usług na pierwszym planie i proszenia o przyznanie uprawnień różnią się w zależności od poziomu interfejsu API, na który jest kierowana aplikacja. Na tej stronie opisano 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 wcześniejszych 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ę odtwarzania multimediów na pierwszym planie. 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 stosuje się kilka typów, rozdziel je operatorem|
. Jeśli na przykład usługa używa kamery i mikrofonu, zadeklaruj to w ten sposób:android:foregroundServiceType="camera|microphone"
W zależności od poziomu interfejsu API, na który jest kierowana aplikacja, może być wymagane zadeklarowanie usług na pierwszym planie w pliku manifestu aplikacji. Wymagania dotyczące poszczególnych poziomów interfejsu API są opisane w artykule Zmiany w usługach na pierwszym planie.
Jeśli spróbujesz utworzyć usługę na pierwszym planie, a jej typ nie jest zadeklarowany w pliku manifestu, system rzuci wyjątek
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ś o uprawnienia usługi działającej na pierwszym planie
Poniższy kod pokazuje, jak poprosić o uprawnienia dotyczące usługi na pierwszym planie, która używa 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 dotyczących aplikacji kierowanej na poziom API 34 lub wyższy.