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ć, jaki rodzaj pracy wykonuje usługa.
Oprócz tego poproś o wszystkie uprawnienia wymagane przez usługi 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 poziomu interfejsu API, na który kierowana jest aplikacja. Na tej stronie opisujemy 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 we 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ę 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 1 typ:
media. Jeśli do Twojej usługi pasuje kilka typów, rozdziel je operatorem|. Jeśli na przykład usługa używa aparatu i mikrofonu, zadeklaruj to w ten sposób:android:foregroundServiceType="camera|microphone"W zależności od docelowego poziomu interfejsu API aplikacji może być wymagane zadeklarowanie usług działających na pierwszym planie w pliku manifestu aplikacji. Wymagania dotyczące konkretnych poziomów interfejsu API są opisane w artykule Zmiany w usługach działających na pierwszym planie.
Jeśli spróbujesz utworzyć usługę działającą na pierwszym planie, a jej typ nie został zadeklarowany w pliku manifestu, system wygeneruje błąd
MissingForegroundServiceTypeExceptionpo wywołaniustartForeground().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 wykorzystuje sprawdzone metody dotyczące aplikacji kierowanych na interfejs API na poziomie 34 lub wyższym.