Trong tệp kê khai của ứng dụng, hãy khai báo từng dịch vụ trên nền trước của ứng dụng bằng phần tử <service>
. Đối với mỗi dịch vụ, hãy sử dụng thuộc tính android:foregroundServiceType
để khai báo loại công việc mà dịch vụ đó thực hiện.
Ngoài ra, hãy yêu cầu mọi quyền mà dịch vụ trên nền trước của bạn cần.
Khả năng tương thích của phiên bản
Các yêu cầu để khai báo dịch vụ trên nền trước và yêu cầu quyền sẽ khác nhau tuỳ thuộc vào cấp độ API mà ứng dụng của bạn nhắm đến. Trang này mô tả các yêu cầu đối với ứng dụng nhắm đến API cấp 34 trở lên. Để biết thông tin về những thay đổi đối với dịch vụ trên nền trước trong các phiên bản nền tảng trước đó, hãy xem phần Thay đổi đối với dịch vụ trên nền trước.
Khai báo dịch vụ trên nền trước trong tệp kê khai ứng dụng
Đoạn mã sau đây cho biết cách khai báo dịch vụ phát nội dung đa phương tiện trên nền trước. Bạn có thể sử dụng một dịch vụ như vậy để phát nhạc.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
Các điểm chính về mã
Trong ví dụ này, dịch vụ chỉ có một loại là
media
. Nếu nhiều loại áp dụng cho dịch vụ của bạn, hãy tách các loại đó bằng toán tử|
. Ví dụ: nếu dịch vụ của bạn sử dụng máy ảnh và micrô, hãy khai báo như sau:android:foregroundServiceType="camera|microphone"
Tuỳ thuộc vào cấp độ API mà ứng dụng của bạn nhắm đến, bạn có thể bắt buộc phải khai báo dịch vụ trên nền trước trong tệp kê khai ứng dụng. Các yêu cầu đối với các cấp độ API cụ thể được mô tả trong phần Thay đổi đối với dịch vụ trên nền trước.
Nếu bạn cố gắng tạo một dịch vụ trên nền trước và loại dịch vụ đó không được khai báo trong tệp kê khai, thì hệ thống sẽ gửi một
MissingForegroundServiceTypeException
khi gọistartForeground()
.Ngay cả khi không bắt buộc, bạn vẫn nên khai báo tất cả dịch vụ trên nền trước và cung cấp các loại dịch vụ của chúng.
Yêu cầu quyền sử dụng dịch vụ trên nền trước
Đoạn mã sau đây cho biết cách yêu cầu cấp quyền cho một dịch vụ trên nền trước sử dụng máy ảnh.
<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>
Các điểm chính về mã
- Mã này sử dụng các phương pháp hay nhất cho một ứng dụng nhắm đến API cấp 34 trở lên.