ประกาศบริการที่ทำงานอยู่เบื้องหน้าและขอสิทธิ์
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ในไฟล์ Manifest ของแอป ให้ประกาศบริการที่ทำงานอยู่เบื้องหน้าแต่ละรายการของแอป
ด้วยองค์ประกอบ <service>
สำหรับแต่ละบริการ ให้ใช้แอตทริบิวต์
android:foregroundServiceType
เพื่อประกาศประเภทงานที่บริการนั้นๆ ทำ
นอกจากนี้ ให้ขอสิทธิ์ที่บริการที่ทำงานอยู่เบื้องหน้าต้องการ
ความเข้ากันได้ของเวอร์ชัน
ข้อกำหนดในการประกาศบริการที่ทำงานอยู่เบื้องหน้าและขอ
สิทธิ์จะแตกต่างกันไปตามระดับ API ที่แอปกำหนดเป้าหมาย หน้านี้
อธิบายข้อกำหนดสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 34 ขึ้นไป ดูข้อมูลเกี่ยวกับการเปลี่ยนแปลงบริการที่ทำงานอยู่เบื้องหน้าในแพลตฟอร์มเวอร์ชันก่อนหน้าได้ที่การเปลี่ยนแปลงบริการที่ทำงานอยู่เบื้องหน้า
ประกาศบริการที่ทำงานอยู่เบื้องหน้าในไฟล์ Manifest ของแอป
โค้ดต่อไปนี้แสดงวิธีประกาศบริการที่ทำงานอยู่เบื้องหน้าสำหรับการเล่นสื่อ
คุณอาจใช้บริการเช่นนี้เพื่อเปิดเพลง
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
ประเด็นสำคัญเกี่ยวกับโค้ด
ในตัวอย่างนี้ บริการมีเพียงประเภทเดียวคือ media
หากบริการของคุณมีหลายประเภท ให้แยกแต่ละประเภทด้วยตัวดำเนินการ |
เช่น หากบริการใช้กล้องและไมโครโฟน
ให้ประกาศดังนี้
android:foregroundServiceType="camera|microphone"
คุณอาจต้องประกาศบริการที่ทำงานอยู่เบื้องหน้าในไฟล์ Manifest ของแอป ทั้งนี้ขึ้นอยู่กับระดับ API ที่แอปกำหนดเป้าหมาย ข้อกำหนดสำหรับ API ระดับที่เฉพาะเจาะจงจะอธิบายไว้ในการเปลี่ยนแปลงบริการที่ทำงานอยู่เบื้องหน้า
หากคุณพยายามสร้างบริการที่ทำงานอยู่เบื้องหน้าและไม่ได้ประกาศประเภทของบริการในไฟล์ Manifest ระบบจะแสดงMissingForegroundServiceTypeException
เมื่อเรียกใช้ startForeground()
แม้ว่าจะไม่บังคับ แต่แนวทางปฏิบัติแนะนำคือการประกาศ
บริการที่ทำงานอยู่เบื้องหน้าทั้งหมดและระบุประเภทบริการ
ขอสิทธิ์สำหรับบริการที่ทำงานอยู่เบื้องหน้า
โค้ดต่อไปนี้แสดงวิธีขอสิทธิ์สำหรับบริการที่ทำงานอยู่เบื้องหน้า
ซึ่งใช้กล้อง
<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>
ประเด็นสำคัญเกี่ยวกับโค้ด
- โค้ดนี้ใช้แนวทางปฏิบัติแนะนำสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 34 ขึ้นไป
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-27 UTC
[null,null,["อัปเดตล่าสุด 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."]]