Dienste im Vordergrund deklarieren und Berechtigungen anfordern
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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()
eine MissingForegroundServiceTypeException
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.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-08-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-27 (UTC)."],[],[],null,["In your app's manifest, declare each of your app's foreground services\nwith a [`\u003cservice\u003e`](/guide/topics/manifest/service-element)\nelement. For each service, use an\n[`android:foregroundServiceType` attribute](/develop/background-work/services/fgs/service-types)\nto declare what kind of work the service does.\n\nIn addition, request any permissions needed by your foreground services.\n| **Important:** All foreground service declarations must comply with the requirements in the [Google Play Device and Network Abuse policy](https://support.google.com/googleplay/android-developer/answer/9888379) and the Google Play [Understanding foreground service requirements\n| documentation](https://support.google.com/googleplay/android-developer/answer/13392821).\n\nVersion compatibility\n\nThe requirements for declaring your foreground services and requesting\npermissions vary depending on what API level your app targets. This page\ndescribes the requirements for apps that target API level 34 or higher. For\ninformation about changes to foreground services in earlier platform versions,\nsee [Changes to foreground services](/develop/background-work/services/fgs/changes).\n\nDeclare foreground services in the app manifest\n\nThe following code shows how to declare a media playback foreground service.\nYou might use a service like this to play music. \n\n \u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\" ...\u003e\n \u003capplication ...\u003e\n\n \u003cservice\n android:name=\".MyMediaPlaybackService\"\n android:foregroundServiceType=\"mediaPlayback\"\n android:exported=\"false\"\u003e\n \u003c/service\u003e\n \u003c/application\u003e\n \u003c/manifest\u003e\n\nKey points about the code\n\n- In this example, the service has only one type, `media`. If\n multiple types apply to your service, separate them with the `|`\n operator. For example, if your service uses the camera and microphone,\n declare it like this:\n\n android:foregroundServiceType=\"camera|microphone\"\n\n- Depending on what API level your app targets, you may be\n **required** to declare foreground services in the app\n manifest. The requirements for specific API levels are described in\n [Changes to foreground services](/develop/background-work/services/fgs/changes).\n\n If you try to create a foreground service and its type isn't declared\n in the manifest, the system throws a\n [`MissingForegroundServiceTypeException`](/reference/android/app/MissingForegroundServiceTypeException)\n upon calling `startForeground()`.\n\n Even when it isn't required, it's a best practice to declare\n all your foreground services and provide their service types.\n\nRequest the foreground service permissions\n\nThe following code shows how to request permissions for a foreground\nservice that uses the camera. \n\n \u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\" ...\u003e\n\n \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE\"/\u003e\n \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE_CAMERA\"/\u003e\n\n \u003capplication ...\u003e\n ...\n \u003c/application\u003e\n \u003c/manifest\u003e\n\nKey points about the code\n\n- This code uses best practices for an app that targets API level 34 or higher."]]