الإفصاح عن الخدمات التي تعمل في المقدّمة وطلب الأذونات
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
في بيان تطبيقك، حدِّد كل خدمة من الخدمات التي تعمل في المقدّمة في تطبيقك باستخدام العنصر <service>
. لكل خدمة، استخدِم السمة
android:foregroundServiceType
لتحديد نوع العمل الذي تؤديه الخدمة.
بالإضافة إلى ذلك، اطلب أي أذونات تحتاجها الخدمات التي تعمل في المقدّمة.
التوافق مع الإصدارات
تختلف متطلبات الإفصاح عن الخدمات التي تعمل في المقدّمة وطلب الأذونات حسب مستوى واجهة برمجة التطبيقات الذي يستهدفه تطبيقك. توضّح هذه الصفحة متطلبات التطبيقات التي تستهدف المستوى 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"
استنادًا إلى مستوى واجهة برمجة التطبيقات الذي يستهدفه تطبيقك، قد يكون مطلوبًا منك تقديم بيان بالخدمات التي تعمل في المقدّمة ضمن بيان التطبيق. تم توضيح متطلبات مستويات واجهة برمجة التطبيقات المحدّدة في مقالة التغييرات على الخدمات التي تعمل في المقدّمة.
إذا حاولت إنشاء خدمة تعمل في المقدّمة ولم يتم تحديد نوعها في البيان، سيُظهر النظام الخطأ
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>
النقاط الرئيسية حول الرمز
- يستخدم هذا الرمز البرمجي أفضل الممارسات لتطبيق يستهدف المستوى 34 أو أعلى من واجهة برمجة التطبيقات.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["In your app's manifest, declare each of your app's foreground services\nwith a [`\u003cservice\u003e`](/guide/topics/manifest/service-element)\nelement. For each service, use an\n[`android:foregroundServiceType` attribute](/develop/background-work/services/fgs/service-types)\nto declare what kind of work the service does.\n\nIn addition, request any permissions needed by your foreground services.\n| **Important:** All foreground service declarations must comply with the requirements in the [Google Play Device and Network Abuse policy](https://support.google.com/googleplay/android-developer/answer/9888379) and the Google Play [Understanding foreground service requirements\n| documentation](https://support.google.com/googleplay/android-developer/answer/13392821).\n\nVersion compatibility\n\nThe requirements for declaring your foreground services and requesting\npermissions vary depending on what API level your app targets. This page\ndescribes the requirements for apps that target API level 34 or higher. For\ninformation about changes to foreground services in earlier platform versions,\nsee [Changes to foreground services](/develop/background-work/services/fgs/changes).\n\nDeclare foreground services in the app manifest\n\nThe following code shows how to declare a media playback foreground service.\nYou might use a service like this to play music. \n\n \u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\" ...\u003e\n \u003capplication ...\u003e\n\n \u003cservice\n android:name=\".MyMediaPlaybackService\"\n android:foregroundServiceType=\"mediaPlayback\"\n android:exported=\"false\"\u003e\n \u003c/service\u003e\n \u003c/application\u003e\n \u003c/manifest\u003e\n\nKey points about the code\n\n- In this example, the service has only one type, `media`. If\n multiple types apply to your service, separate them with the `|`\n operator. For example, if your service uses the camera and microphone,\n declare it like this:\n\n android:foregroundServiceType=\"camera|microphone\"\n\n- Depending on what API level your app targets, you may be\n **required** to declare foreground services in the app\n manifest. The requirements for specific API levels are described in\n [Changes to foreground services](/develop/background-work/services/fgs/changes).\n\n If you try to create a foreground service and its type isn't declared\n in the manifest, the system throws a\n [`MissingForegroundServiceTypeException`](/reference/android/app/MissingForegroundServiceTypeException)\n upon calling `startForeground()`.\n\n Even when it isn't required, it's a best practice to declare\n all your foreground services and provide their service types.\n\nRequest the foreground service permissions\n\nThe following code shows how to request permissions for a foreground\nservice that uses the camera. \n\n \u003cmanifest xmlns:android=\"http://schemas.android.com/apk/res/android\" ...\u003e\n\n \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE\"/\u003e\n \u003cuses-permission android:name=\"android.permission.FOREGROUND_SERVICE_CAMERA\"/\u003e\n\n \u003capplication ...\u003e\n ...\n \u003c/application\u003e\n \u003c/manifest\u003e\n\nKey points about the code\n\n- This code uses best practices for an app that targets API level 34 or higher."]]