Deklarieren Sie im Manifest Ihrer App alle Dienste im Vordergrund mit einem <service>
-Element. Verwenden Sie für jeden Dienst ein android:foregroundServiceType
-Attribut, um anzugeben, welche Art von Arbeit der Dienst ausführt.
Fordern Sie außerdem alle Berechtigungen an, die für Ihre Dienste im Vordergrund erforderlich sind.
Versionskompatibilität
Die Anforderungen an die Deklaration Ihrer Dienste im Vordergrund und das Anfordern von Berechtigungen variieren je nach API-Level, auf das 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
Im folgenden Code wird gezeigt, wie ein Dienst für die Medienwiedergabe im Vordergrund 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 für Ihren Dienst mehrere Typen gelten, trennen Sie sie mit dem Operator|
. Wenn Ihr Dienst beispielsweise die Kamera und das Mikrofon verwendet, deklarieren Sie dies 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-Ebenen werden unter Änderungen an 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 Aufruf 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
Im folgenden Code wird gezeigt, wie Sie Berechtigungen für einen Dienst im Vordergrund anfordern, 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
- In diesem Code werden Best Practices für eine App verwendet, die auf API-Level 34 oder höher ausgerichtet ist.