در مانیفست برنامهتان، هریک از سرویسهای پیشزمینهای برنامهتان را با عنصر <service> اعلام کنید. برای هر سرویس، از یک
android:foregroundServiceType مشخصه
استفاده کنید تا اعلام کنید سرویس چه نوع کاری انجام میدهد.
علاوهبراین، هرگونه اجازه موردنیاز سرویسهای پیشزمینهایتان را درخواست کنید.
سازگاری نسخه
الزامات اعلام سرویسهای پیشزمینهای و درخواست اجازهها بسته به سطح میانای برنامهسازی کاربردی هدف برنامهتان متفاوت است. این صفحه الزامات برنامههایی را که سطح میانای برنامهسازی کاربردی ۳۴ یا بالاتر را هدف قرار میدهند شرح میدهد. برای کسب اطلاعات درباره تغییرات سرویسهای پیشزمینهای در نسخههای قبلی پلاتفرم، به تغییرات سرویسهای پیشزمینهای مراجعه کنید.
اعلام کردن سرویسهای پیشزمینهای در مانیفست برنامه
کد زیر نحوه اعلام سرویس پیشزمینهای بازپخش رسانه را نشان میدهد. ممکن است از سرویسی مثل این برای پخش موسیقی استفاده کنید.
<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"بسته به اینکه برنامه شما کدام سطح میانای برنامهسازی کاربردی را هدف قرار میدهد، ممکن است ملزم باشید سرویسهای پیشزمینهای را در مانیفست برنامه اعلام کنید. الزامات مربوط به سطوح میانای برنامهسازی کاربردی خاص در تغییرات سرویسهای پیشزمینهای شرح داده شده است.
اگر سعی کنید سرویس پیشزمینهای ایجاد کنید و نوع آن در مانیفست اعلام نشده باشد، سیستم هنگام فراخوانی
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>
نکات کلیدی درباره کد
- این کد از روالهای مطلوب برای برنامهای استفاده میکند که سطح میانای برنامهسازی کاربردی ۳۴ یا بالاتر را هدف قرار میدهد.