Deklarieren Sie im Manifest Ihrer App jeden Dienst im Vordergrund mit einem <service>
-Element. Verwenden Sie für jeden Dienst ein android:foregroundServiceType
-Attribut, um zu deklarieren, welche Art von Arbeit der Dienst ausführt.
Fordern Sie außerdem alle Berechtigungen an, die für Ihre Vordergrunddienste erforderlich sind.
Versionskompatibilität
Die Anforderungen für die Deklaration Ihrer Vordergrunddienste und das Anfordern von Berechtigungen hängen davon ab, auf welches API-Level Ihre App ausgerichtet ist. Auf dieser Seite werden die Anforderungen für Apps beschrieben, die auf API‑Level 34 oder höher ausgerichtet sind. Informationen zu Änderungen an Diensten im Vordergrund in früheren Plattformversionen finden Sie unter Änderungen an Diensten im Vordergrund.
Dienste im Vordergrund im App-Manifest deklarieren
Der folgende Code zeigt, wie ein Media-Wiedergabe-Vordergrunddienst deklariert wird. Sie können einen solchen Dienst verwenden, um Musik abzuspielen.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Wichtige Punkte zum Code
In diesem Beispiel hat der Dienst nur einen Typ:
media
. Wenn mehrere Typen auf Ihren Dienst zutreffen, trennen Sie sie mit dem Operator|
. Wenn Ihr Dienst beispielsweise die Kamera und das Mikrofon verwendet, deklarieren Sie ihn so:android:foregroundServiceType="camera|microphone"
Je nachdem, auf welches API-Level Ihre App ausgerichtet ist, müssen Sie möglicherweise Dienste im Vordergrund im App-Manifest deklarieren. Die Anforderungen für bestimmte API-Levels werden unter Änderungen bei Diensten im Vordergrund beschrieben.
Wenn Sie versuchen, einen Dienst im Vordergrund zu erstellen, dessen Typ nicht im Manifest deklariert ist, löst das System beim Aufrufen von
startForeground()
eineMissingForegroundServiceTypeException
aus.Auch wenn es nicht erforderlich ist, empfiehlt es sich, alle Dienste im Vordergrund zu deklarieren und ihre Diensttypen anzugeben.
Berechtigungen für Dienste im Vordergrund anfordern
Der folgende Code zeigt, wie Berechtigungen für einen Vordergrunddienst angefordert werden, der die Kamera verwendet.
<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>
Wichtige Punkte zum Code
- Dieser Code entspricht den Best Practices für eine App, die auf API-Level 34 oder höher ausgerichtet ist.