Mendeklarasikan layanan latar depan dan meminta izin
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Dalam manifes aplikasi, deklarasikan setiap layanan latar depan aplikasi Anda dengan elemen <service>
. Untuk setiap layanan, gunakan atribut
android:foregroundServiceType
untuk menyatakan jenis pekerjaan yang dilakukan layanan.
Selain itu, minta izin apa pun yang diperlukan oleh layanan latar depan Anda.
Kompatibilitas versi
Persyaratan untuk mendeklarasikan layanan latar depan dan meminta izin bervariasi bergantung pada level API yang ditargetkan aplikasi Anda. Halaman ini
menjelaskan persyaratan untuk aplikasi yang menargetkan level API 34 atau yang lebih tinggi. Untuk
mengetahui informasi tentang perubahan pada layanan latar depan di versi platform sebelumnya,
lihat Perubahan pada layanan latar depan.
Mendeklarasikan layanan latar depan dalam manifes aplikasi
Kode berikut menunjukkan cara mendeklarasikan layanan latar depan pemutaran media.
Anda dapat menggunakan layanan seperti ini untuk memutar musik.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Poin penting tentang kode
Dalam contoh ini, layanan hanya memiliki satu jenis, media
. Jika
beberapa jenis berlaku untuk layanan Anda, pisahkan dengan operator |
. Misalnya, jika layanan Anda menggunakan kamera dan mikrofon, deklarasikan seperti ini:
android:foregroundServiceType="camera|microphone"
Bergantung pada level API yang ditargetkan aplikasi Anda, Anda mungkin
diwajibkan untuk mendeklarasikan layanan latar depan dalam
manifes aplikasi. Persyaratan untuk level API tertentu dijelaskan dalam
Perubahan pada layanan latar depan.
Jika Anda mencoba membuat layanan latar depan dan jenisnya tidak dideklarasikan
dalam manifes, sistem akan menampilkan
MissingForegroundServiceTypeException
saat memanggil startForeground()
.
Meskipun tidak wajib, sebaiknya nyatakan semua layanan latar depan Anda dan berikan jenis layanannya.
Meminta izin layanan latar depan
Kode berikut menunjukkan cara meminta izin untuk layanan latar depan yang menggunakan kamera.
<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>
Poin penting tentang kode
- Kode ini menggunakan praktik terbaik untuk aplikasi yang menargetkan API level 34 atau yang lebih tinggi.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]