در فایل مانیفست برنامه خود، هر یک از سرویسهای پیشزمینه برنامه خود را با یک عنصر <service> تعریف کنید. برای هر سرویس، از ویژگی android:foregroundServiceType برای تعریف نوع کاری که سرویس انجام میدهد، استفاده کنید.
علاوه بر این، هرگونه مجوز مورد نیاز سرویسهای پیشزمینه خود را درخواست کنید.
سازگاری نسخه
الزامات اعلام سرویسهای پیشزمینه و درخواست مجوزها بسته به سطح API مورد نظر برنامه شما متفاوت است. این صفحه الزامات برنامههایی را که سطح API 34 یا بالاتر را هدف قرار میدهند، شرح میدهد. برای اطلاعات در مورد تغییرات سرویسهای پیشزمینه در نسخههای قبلی پلتفرم، به تغییرات سرویسهای پیشزمینه مراجعه کنید.
سرویسهای پیشزمینه را در مانیفست برنامه تعریف کنید
کد زیر نحوه تعریف یک سرویس پخش رسانه در پیشزمینه را نشان میدهد. شما میتوانید از سرویسی مانند این برای پخش موسیقی استفاده کنید.
<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"بسته به اینکه برنامه شما چه سطح API را هدف قرار میدهد، ممکن است لازم باشد سرویسهای پیشزمینه را در مانیفست برنامه تعریف کنید. الزامات مربوط به سطوح خاص API در «تغییرات در سرویسهای پیشزمینه» شرح داده شده است.
اگر سعی کنید یک سرویس پیشزمینه ایجاد کنید و نوع آن در مانیفست اعلام نشده باشد، سیستم هنگام فراخوانی
startForeground()MissingForegroundServiceTypeExceptionصادر میکند.حتی زمانی که لازم نیست، بهترین روش این است که تمام سرویسهای پیشزمینه خود را تعریف کنید و انواع سرویسهای آنها را ارائه دهید.
درخواست مجوزهای سرویس پیشزمینه
کد زیر نحوه درخواست مجوز برای یک سرویس پیشزمینه که از دوربین استفاده میکند را نشان میدهد.
<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 یا بالاتر را هدف قرار میدهد، استفاده میکند.