لمساعدة المطوّرين على تحديد الخدمات التي تعمل في المقدّمة الموجّهة للمستخدمين، قدَّم نظام Android 10 السمة android:foregroundServiceType
ضمن العنصر <service>
.
إذا كان تطبيقك يستهدف الإصدار 14 من نظام التشغيل Android، يجب أن يحدِّد أنواع الخدمات المناسبة التي تعمل في المقدّمة. كما هو الحال في الإصدارات السابقة من Android، يمكن دمج أنواع متعددة. وتعرض هذه القائمة أنواع الخدمات التي تعمل في المقدّمة للاختيار من بينها:
camera
connectedDevice
dataSync
health
location
mediaPlayback
mediaProjection
microphone
phoneCall
remoteMessaging
shortService
specialUse
systemExempted
إذا لم تكن حالة استخدام في تطبيقك مرتبطة بأيّ من هذه الأنواع، ننصحك بشدة بنقل منطقك لاستخدام WorkManager أو مهام نقل البيانات التي يبدأها المستخدم.
النوعان health, remoteMessaging, shortService, specialUse
وsystemExempted
هما نوعان جديدان في Android 14.
يقدّم مقتطف الرمز التالي مثالاً على بيان نوع خدمة تعمل في المقدّمة في البيان:
<manifest ...>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
إذا كان أحد التطبيقات التي تستهدف Android 14 لا يحدّد أنواع خدمة معيّنة في
البيان، سيطلب النظام MissingForegroundServiceTypeException
عند استدعاء startForeground()
لهذه الخدمة.
طلب الحصول على إذن جديد لاستخدام أنواع الخدمات التي تعمل في المقدّمة
إذا كانت التطبيقات التي تستهدف الإصدار 14 من نظام التشغيل Android تستخدم خدمة تعمل في المقدّمة، يجب تقديم بيان عن إذن محدّد يقدّمه الإصدار 14 من Android ويستند إلى نوع الخدمة التي تعمل في المقدّمة. تظهر هذه الأذونات في الأقسام التي تحمل التصنيف "الإذن الذي يجب الإفصاح عنه في ملف البيان" ضمن قسم حالات الاستخدام المقصودة وإجراءات التنفيذ لكل نوع من أنواع الخدمات التي تعمل في المقدّمة في هذه الصفحة.
يتم تعريف جميع الأذونات على أنّها أذونات عادية ويتم منح الموافقة عليها تلقائيًا. ولا يمكن للمستخدمين إبطال هذه الأذونات.
تضمين نوع الخدمة التي تعمل في المقدّمة في وقت التشغيل
من أفضل الممارسات للتطبيقات التي تبدأ الخدمات التي تعمل في المقدّمة استخدام الإصدار
ServiceCompat
من startForeground()
(متاح في androidx-core
1.12 والإصدارات الأحدث) حيث يتم تمرير عددٍ كاملٍ مبني على الأعداد الثنائية لأنواع الخدمات التي تعمل في المقدّمة. يمكنك اختيار تمرير قيمة نوع واحدة أو أكثر.
وعادةً ما يجب الإفصاح عن الأنواع المطلوبة فقط لحالة استخدام معيّنة. ويسهِّل ذلك تلبية توقّعات النظام لكل نوع من أنواع الخدمات التي تعمل في المقدّمة. في الحالات التي يتم فيها بدء الخدمة التي تعمل في المقدّمة بعدة أنواع، يجب أن تلتزم الخدمة التي تعمل في المقدّمة بمتطلبات التنفيذ على مستوى النظام الأساسي لجميع الأنواع.
ServiceCompat.startForeground(0, notification, FOREGROUND_SERVICE_TYPE_LOCATION)
إذا لم يتم تحديد نوع الخدمة التي تعمل في المقدّمة في الطلب، سيكون النوع التلقائي
على القيم المحدّدة في البيان. إذا لم تحدِّد نوع الخدمة
في البيان، سيُرسِل النظام خطأ
MissingForegroundServiceTypeException
.
إذا كانت الخدمة التي تعمل في المقدّمة تحتاج إلى أذونات جديدة بعد تفعيلها، عليك
طلب startForeground()
مجددًا وإضافة أنواع الخدمات الجديدة. على سبيل المثال، لنفترض أنّ تطبيق لياقة بدنية يشغّل خدمة تتبُّع الركض التي تحتاج دائمًا إلى معلومات
location
، ولكن قد تحتاج أو لا تحتاج إلى أذونات media
.
عليك الإفصاح عن كل من location
وmediaPlayback
في البيان. إذا بدأ أحد المستخدمين جولة ركض وأردت تتبُّع موقعه الجغرافي فقط، يجب أن يتصل تطبيقك بواجهة برمجة التطبيقات
startForeground()
ويُرسل نوع الخدمة location
فقط. بعد ذلك، إذا أراد المستخدم
بدء تشغيل الصوت، يتصل بـ startForeground()
مرة أخرى ويمرّر
location|mediaPlayback
.
عمليات التحقّق في وقت تشغيل النظام
يتحقّق النظام من الاستخدام الصحيح لأنواع الخدمات التي تعمل في المقدّمة ويؤكّد أنّه
قد طلب التطبيق أذونات التشغيل المناسبة أو يستخدم واجهات برمجة التطبيقات المطلوبة.
على سبيل المثال، يتوقّع النظام أن تطلب التطبيقات التي تستخدم نوع الخدمة التي تعمل في المقدّمة
FOREGROUND_SERVICE_TYPE_LOCATION
إما
ACCESS_COARSE_LOCATION
أو ACCESS_FINE_LOCATION
.
ويشير ذلك إلى أنّ التطبيقات يجب أن تتّبع ترتيبًا محدّدًا جدًا
للعمليات عند طلب الأذونات من المستخدم وبدء
الخدمات التي تعمل في المقدّمة. يجب طلب الأذونات ومنحها قبل أن يحاول التطبيق الاتصال بخدمة startForeground()
. على التطبيقات التي تطلب الأذونات المناسبة
بعد بدء الخدمة التي تعمل في المقدّمة تغيير ترتيب
هذه العمليات وطلب الإذن قبل بدء الخدمة التي تعمل في المقدّمة.
تظهر تفاصيل تنفيذ المنصة في الأقسام التي تحمل التصنيف "متطلبات وقت التشغيل" في قسم حالات الاستخدام المقصودة وتنفيذ كل نوع من الخدمات التي تعمل في المقدّمة في هذه الصفحة.
حالات الاستخدام المقصودة وإجراءات التنفيذ لكل نوع من أنواع الخدمات التي تعمل في المقدّمة
لاستخدام نوع معيّن من الخدمات التي تعمل في المقدّمة، يجب تقديم بيان عن إذن معيّن في ملف البيان، ويجب استيفاء متطلبات محددة أثناء التشغيل ، ويجب أن يستوفي تطبيقك إحدى المجموعات المقصودة من حالات الاستخدام لهذا النوع. توضّح الأقسام التالية الإذن الذي يجب إعلام المستخدمين به، ومتطلبات التشغيل الأساسية، وحالات الاستخدام المقصودة لكل نوع.
الكاميرا
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
camera
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_CAMERA
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_CAMERA
- المتطلبات الأساسية لوقت التشغيل
طلب إذن التشغيل
CAMERA
والحصول عليهملاحظة: يخضع إذن التشغيل
CAMERA
لقيود الاستخدام أثناء التشغيل. لهذا السبب، لا يمكنك إنشاءcamera
خدمة تعمل في المقدّمة عندما يكون تطبيقك قيد التشغيل في الخلفية، باستثناء بعض الحالات. لمزيد من المعلومات، يُرجى الاطّلاع على القيود المفروضة على بدء الخدمات التي تعمل في المقدّمة والتي تحتاج إلى أذونات أثناء الاستخدام.- الوصف
يمكن مواصلة الوصول إلى الكاميرا في الخلفية مثلاً من خلال تطبيقات محادثات الفيديو التي تتيح تعدُّد المهام.
جهاز متّصل
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
connectedDevice
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_CONNECTED_DEVICE
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE
- المتطلبات الأساسية لوقت التشغيل
يجب أن يكون هناك شرط واحد على الأقل من الشروط التالية صحيحًا:
يجب الإفصاح عن أحد الأذونات التالية على الأقل في البيان:
طلب الحصول على واحد على الأقل من أذونات وقت التشغيل التالية والحصول عليه:
اتصل على
UsbManager.requestPermission()
.
- الوصف
التفاعلات مع الأجهزة الخارجية التي تتطلّب اتصالاً عبر البلوتوث أو تقنية NFC أو الأشعة تحت الحمراء أو USB أو الشبكة
- الحلول البديلة
إذا كان تطبيقك بحاجة إلى نقل البيانات باستمرار إلى جهاز خارجي، ننصحك باستخدام مدير الجهاز المصاحب بدلاً من ذلك. استخدِم واجهة برمجة التطبيقات لرصد توفّر الجهاز المصاحب لمساعدة تطبيقك في مواصلة العمل عندما يكون الجهاز المصاحب في النطاق.
إذا كان تطبيقك بحاجة إلى البحث عن أجهزة تتضمّن بلوتوث، ننصحك باستخدام واجهة برمجة التطبيقات لفحص البلوتوث بدلاً من ذلك.
مزامنة البيانات
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
dataSync
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_DATA_SYNC
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_DATA_SYNC
- المتطلبات الأساسية لوقت التشغيل
- بدون
- الوصف
عمليات نقل البيانات، مثل ما يلي:
- تحميل البيانات أو تنزيلها
- عمليات الاحتفاظ بنسخة احتياطية من البيانات واستعادتها
- عمليات الاستيراد أو التصدير
- استرجاع البيانات
- معالجة الملفات على الجهاز
- نقل البيانات بين جهاز والسحابة الإلكترونية عبر شبكة
- الحلول البديلة
اطّلِع على البدائل لخدمات "مزامنة البيانات" التي تعمل في المقدّمة للحصول على معلومات مفصّلة.
الحالة
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
health
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_HEALTH
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_HEALTH
- المتطلبات الأساسية لوقت التشغيل
يجب أن يكون هناك شرط واحد على الأقل من الشروط التالية صحيحًا:
أدرِج الإذن
HIGH_SAMPLING_RATE_SENSORS
في بيان التطبيق.طلب الحصول على واحد على الأقل من أذونات وقت التشغيل التالية والحصول عليه:
ملاحظة: يخضع إذن التشغيل
BODY_SENSORS
لقيود الاستخدام أثناء التشغيل. لهذا السبب، لا يمكنك إنشاءhealth
خدمة تعمل في المقدّمة تستخدم أدوات استشعار الجسم عندما يكون تطبيقك في الخلفية، باستثناء بعض الحالات. لمزيد من المعلومات، يُرجى الاطّلاع على القيود المفروضة على بدء الخدمات التي تعمل في المقدّمة والتي تحتاج إلى أذونات أثناء الاستخدام.- الوصف
أيّ حالات استخدام طويلة الأمد لتفعيل التطبيقات في فئة اللياقة البدنية، مثل أجهزة تتبُّع التمارين الرياضية
الموقع الجغرافي
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنه في البيان ضمن
android:foregroundServiceType
location
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_LOCATION
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_LOCATION
- المتطلبات الأساسية لوقت التشغيل
يجب أن يكون المستخدم قد فعّل خدمات الموقع الجغرافي وأن يتم منح التطبيق إذن تشغيل واحدًا على الأقل من الأذونات التالية:
ملاحظة: للتحقّق من أنّ المستخدم قد فعّل خدمات الموقع الجغرافي بالإضافة إلى منح الإذن بالوصول إلى أذونات التشغيل، استخدِم
PermissionChecker#checkSelfPermission()
.ملاحظة: تخضع أذونات التشغيل الخاصة بالموقع الجغرافي لقيود الاستخدام أثناء التشغيل. لهذا السبب، لا يمكنك إنشاء
location
خدمة تعمل في المقدّمة عندما يكون تطبيقك قيد التشغيل في الخلفية، ما لم يتم منحك إذنACCESS_BACKGROUND_LOCATION
وقت التشغيل. لمزيد من المعلومات، يُرجى الاطّلاع على القيود المفروضة على بدء الخدمات التي تعمل في المقدّمة والتي تحتاج إلى أذونات أثناء الاستخدام.- الوصف
حالات الاستخدام التي تستغرق وقتًا طويلاً وتتطلّب الوصول إلى الموقع الجغرافي، مثل التنقّل ومشاركة الموقع الجغرافي
- الحلول البديلة
إذا كان تطبيقك يحتاج إلى التفعيل عندما يصل المستخدم إلى مواقع جغرافية معيّنة، ننصحك باستخدام Geofence API بدلاً من ذلك.
الوسائط
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
mediaPlayback
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_MEDIA_PLAYBACK
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
- المتطلبات الأساسية لوقت التشغيل
- بدون
- الوصف
- مواصلة تشغيل الصوت أو الفيديو في الخلفية أن تتيح وظائف تسجيل الفيديو الرقمي (DVR) على Android TV
- الحلول البديلة
- إذا كنت تعرض فيديو في وضع "نافذة ضمن النافذة"، استخدِم وضع "نافذة ضمن النافذة".
عرض الوسائط
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
mediaProjection
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_MEDIA_PROJECTION
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
- المتطلبات الأساسية لوقت التشغيل
استخدِم طريقة
createScreenCaptureIntent()
قبل بدء الخدمة التي تعمل في المقدّمة. يؤدي ذلك إلى عرض إشعار الإذن للمستخدم، ويُرجى العِلم أنّه يجب أن يمنح المستخدم الإذن قبل أن تتمكّن من إنشاء الخدمة.بعد إنشاء الخدمة التي تعمل في المقدّمة، يمكنك الاتصال بـ
MediaProjectionManager.getMediaProjection()
.- الوصف
عرض المحتوى على أجهزة عرض غير أساسية أو أجهزة خارجية باستخدام واجهات برمجة تطبيقات
MediaProjection
ولا يُشترط أن يكون هذا المحتوى إعلاميًا فقط.- الحلول البديلة
لبث الوسائط إلى جهاز آخر، استخدِم Google Cast SDK.
الميكروفون
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
microphone
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_MICROPHONE
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_MICROPHONE
- المتطلبات الأساسية لوقت التشغيل
اطلب إذن التشغيل
RECORD_AUDIO
واحصل عليه.ملاحظة: يخضع إذن التشغيل
RECORD_AUDIO
لقيود الاستخدام أثناء التشغيل. لهذا السبب، لا يمكنك إنشاءmicrophone
خدمة تعمل في المقدّمة عندما يكون تطبيقك قيد التشغيل في الخلفية، باستثناء بعض الحالات. لمزيد من المعلومات، يُرجى الاطّلاع على القيود المفروضة على بدء الخدمات التي تعمل في المقدّمة والتي تحتاج إلى أذونات أثناء الاستخدام.- الوصف
مواصلة استخدام الميكروفون في الخلفية، مثل مسجلات الصوت أو تطبيقات التواصل
مكالمة هاتفية
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
phoneCall
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_PHONE_CALL
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_PHONE_CALL
- المتطلبات الأساسية لوقت التشغيل
يجب أن يكون أحد الشروط التالية صحيحًا على الأقل:
- أعلن التطبيق عن إذن
MANAGE_OWN_CALLS
في ملف البيان.
- أعلن التطبيق عن إذن
- التطبيق هو تطبيق الاتصال التلقائي من خلال دور
ROLE_DIALER
.
- التطبيق هو تطبيق الاتصال التلقائي من خلال دور
- الوصف
مواصلة مكالمة جارية باستخدام واجهات برمجة تطبيقات
ConnectionService
- الحلول البديلة
إذا كنت بحاجة إلى إجراء مكالمات هاتفية أو مكالمات فيديو أو مكالمات عبر بروتوكول الصوت على الإنترنت، ننصحك باستخدام مكتبة
android.telecom
.ننصحك باستخدام
CallScreeningService
لفحص المكالمات.
المراسلة عن بُعد
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
remoteMessaging
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_REMOTE_MESSAGING
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING
- المتطلبات الأساسية لوقت التشغيل
- بدون
- الوصف
- نقل الرسائل النصية من جهاز إلى آخر تقدِّم هذه الخدمة المساعدة في مواصلة مهام المراسلة من المستخدم عند تبديل الأجهزة.
خدمة قصيرة
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
shortService
- الإذن المطلوب تضمينه في بيان التطبيق
- بدون
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
- المتطلبات الأساسية لوقت التشغيل
- بدون
- الوصف
إنهاء العمل المهم بسرعة والذي لا يمكن إيقافه أو تأجيله
يتميز هذا النوع ببعض الخصائص الفريدة:
- لا يمكن تشغيله إلا لفترة قصيرة (حوالي 3 دقائق).
- لا تتوفّر خدمات ثابتة تعمل في المقدّمة.
- لا يمكن بدء خدمات أخرى تعمل في المقدّمة.
- لا يتطلّب إذنًا خاصًا بالنوع، إلا أنّه
يتطلّب إذن
FOREGROUND_SERVICE
. - لا يمكن تغيير
shortService
إلى نوع خدمة آخر إلا إذا كان التطبيق مؤهلاً حاليًا لبدء خدمة جديدة تعمل في المقدّمة. - يمكن لخدمة تعمل في المقدّمة تغيير نوعها إلى
shortService
في أي وقت، وعندها تبدأ فترة المهلة.
يبدأ مهلة shortService من لحظة استدعاء
Service.startForeground()
. من المتوقّع أن يتصل التطبيقService.stopSelf()
أوService.stopForeground()
قبل حدوث مهلة. بخلاف ذلك، يتم استدعاءService.onTimeout()
الجديد، ما يمنح التطبيقات فرصة قصيرة للاتصال بـstopSelf()
أوstopForeground()
لإيقاف خدمتها.بعد وقت قصير من استدعاء
Service.onTimeout()
، يدخل التطبيق في حالة تخزين مؤقت ولا يعود في المقدّمة، ما لم يكن المستخدم يتفاعل مع التطبيق بشكل نشط. بعد وقت قصير من تخزين التطبيق مؤقتًا وعدم توقّف الخدمة، يتلقّى التطبيق خطأ ANR. تشير رسالة ANR إلىFOREGROUND_SERVICE_TYPE_SHORT_SERVICE
. لهذه الأسباب، يُعدّ تنفيذService.onTimeout()
callback من أفضل الممارسات.لا يتوفّر خيار الاتصال التلقائي
Service.onTimeout()
على الإصدار 13 من نظام التشغيل Android والإصدارات الأقدم. إذا كانت الخدمة نفسها تعمل على هذه الأجهزة، لا تتلقّى مهلة ولا تتلقّى ANR. تأكَّد من أنّ الخدمة تتوقف فور الانتهاء من مهمة المعالجة، حتى إذا لم تتلقّService.onTimeout()
طلب إعادة الاتصال بعد.من المهمّ ملاحظة أنّه في حال عدم الالتزام بالمهلة الزمنية ل
shortService
، سيظهر خطأ ANR في التطبيق حتى إذا كان لديه خدمات صالحة أخرى في المقدّمة أو عمليات أخرى لدورة حياة التطبيق قيد التشغيل.إذا كان التطبيق مرئيًا للمستخدم أو يستوفي أحد الإعفاءات التي تسمح ببدء الخدمات التي تعمل في المقدّمة من الخلفية، يؤدي استدعاء
Service.StartForeground()
مرة أخرى باستخدام المَعلمةFOREGROUND_SERVICE_TYPE_SHORT_SERVICE
إلى تمديد مهلة الانتظار مدّة 3 دقائق أخرى. إذا لم يكن التطبيق مرئيًا للمستخدم ولم يكن يستوفي أحد الإعفاءات، تؤدي أي محاولة لبدء خدمة أخرى تعمل في المقدّمة، بغض النظر عن نوعها، إلىForegroundServiceStartNotAllowedException
.إذا أوقف المستخدم ميزة تحسين البطارية لتطبيقك، سيظلّ يتأثر بوقت الاستراحة لـ FGS في shortService.
إذا بدأت خدمة تعمل في المقدّمة تتضمّن نوع
shortService
و نوعًا آخر من الخدمات التي تعمل في المقدّمة، يتجاهل النظام بيان نوعshortService
. ومع ذلك، يجب أن تلتزم الخدمة بالشروط الأساسية للأنواع الأخرى المعلَن عنها. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات خدمات المقدّمة.
استخدام خاص
- نوع الخدمة التي تعمل في المقدّمة للإفصاح عنها في البيان ضمن
android:foregroundServiceType
specialUse
- إذن بالبيان في بيان التطبيق
FOREGROUND_SERVICE_SPECIAL_USE
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
- المتطلّبات الأساسية لبيئة التشغيل
- ما مِن قيمة محدّدة
- الوصف
تشمل أي حالات استخدام صالحة للخدمة التي تعمل في المقدّمة ولا تغطيها أنواع الخدمات التي تعمل في المقدّمة.
بالإضافة إلى تقديم بيان عن
FOREGROUND_SERVICE_TYPE_SPECIAL_USE
نوع الخدمة التي تعمل في المقدّمة، على المطوّرين تقديم بيان عن حالات الاستخدام في ملفFOREGROUND_SERVICE_TYPE_SPECIAL_USE
البيان. ولإجراء ذلك، يحددون عنصر<property>
في<service>
. تُعد هذه القيم وحالات الاستخدام المقابلة أن تتم مراجعتها عند إرسال تطبيقك في Google Play Console. الاستخدام الحالات التي تقدمها تكون حرة الشكل، ويجب أن تتأكد من توفير ما يكفي من للسماح للمراجع بمعرفة سبب احتياجك إلى استخدامspecialUse
الكتابة.<service android:name="fooService" android:foregroundServiceType="specialUse"> <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="explanation_for_special_use"/> </service>
تم استثناء النظام
- نوع الخدمة التي تعمل في المقدّمة المطلوب تقديم بيان عنها في البيان ضمن
android:foregroundServiceType
systemExempted
- الإذن المطلوب تضمينه في بيان التطبيق
FOREGROUND_SERVICE_SYSTEM_EXEMPTED
- ثابت يتم تمريره إلى
startForeground()
FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED
- المتطلبات الأساسية لوقت التشغيل
- بدون
- الوصف
محجوز لتطبيقات النظام وعمليات دمج معيّنة للنظام، لمواصلة استخدام الخدمات التي تعمل في المقدّمة
لاستخدام هذا النوع، يجب أن يستوفي التطبيق واحدًا من المعايير التالية على الأقل:
- الجهاز في وضع العرض التجريبي
- التطبيق هو مالك الجهاز
- التطبيق هو مالك ملف تجاري
- تطبيقات الأمان التي لها دور
ROLE_EMERGENCY
- تطبيقات مشرف الجهاز
- التطبيقات التي تمتلك إذن
SCHEDULE_EXACT_ALARM
أوUSE_EXACT_ALARM
وتستخدم خدمة تعمل في المقدّمة لمواصلة تشغيل المنبّهات في الخلفية، بما في ذلك المنبّهات التي تستخدم اللمس فقط تطبيقات شبكة VPN (تم ضبطها باستخدام الإعدادات > الشبكة والإنترنت > شبكة VPN)
بخلاف ذلك، يؤدي تحديد هذا النوع إلى طرح النظام لخطأ
ForegroundServiceTypeNotAllowedException
.
فرض سياسات Google Play في ما يتعلّق باستخدام أنواع الخدمات التي تعمل في المقدّمة
إذا كان تطبيقك يستهدف الإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، عليك الإفصاح عن أنواع الخدمات التي تعمل في المقدّمة في صفحة محتوى التطبيق في Play Console (السياسة > محتوى التطبيق). لمزيد من المعلومات حول كيفية توضيح أنواع الخدمات التي تعمل في المقدّمة في Play Console، يُرجى الاطّلاع على مقالة التعرّف على متطلّبات الخدمة التي تعمل في المقدّمة والعرض بملء الشاشة.