ในไฟล์ 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 ขึ้นไป