إذا أردت إرسال رسائل FCM إلى التطبيقات قبل فتح قفل الجهاز، يمكنك تفعيل وضع التشغيل المباشر. على سبيل المثال، إذا أردت أن يتلقّى مستخدمو تطبيقك إشعارات المنبّه حتى على جهاز مقفل،
عند إنشاء حالة الاستخدام هذه، يُرجى مراعاة أفضل الممارسات والقيود العامة لوضع التشغيل المباشر. من المهم مراعاة مستوى ظهور الرسائل التي تم تفعيل ميزة "التشغيل المباشر" لها. يمكن لأي مستخدم لديه إذن بالوصول إلى الجهاز الاطّلاع على هذه الرسائل بدون إدخال بيانات اعتماد المستخدم.
المتطلبات الأساسية
- يجب إعداد الجهاز لوضع التشغيل المباشر.
- يجب أن يكون الجهاز مثبّتًا عليه إصدار حديث من "خدمات Google Play" (الإصدار 19.0.54 أو إصدار أحدث).
- يجب أن يستخدم التطبيق حزمة تطوير البرامج (SDK) لخدمة "مراسلة Firebase السحابية" (
com.google.firebase:firebase-messaging) لتلقّي رسائل FCM.
تفعيل معالجة الرسائل في وضع التشغيل المباشر في تطبيقك
في ملف Gradle على مستوى التطبيق، أضِف تبعية على مكتبة دعم التشغيل المباشر FCM:
implementation 'com.google.firebase:firebase-messaging-directboot:20.2.0'اجعل تطبيق
FirebaseMessagingServiceمتوافقًا مع ميزة "التشغيل المباشر" من خلال إضافة السمةandroid:directBootAware="true"في بيان التطبيق:<service android:name=".java.MyFirebaseMessagingService" android:exported="false" android:directBootAware="true"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
من المهم التأكّد من أنّ هذا FirebaseMessagingService يمكن تشغيله في وضع التشغيل المباشر. يمكنك التحقّق من ذلك باستخدام المتطلبات التالية:
- يجب ألا تصل الخدمة إلى مساحة التخزين المحمية ببيانات الاعتماد أثناء تشغيلها في وضع التشغيل المباشر.
- يجب ألا تحاول الخدمة استخدام مكوّنات، مثل
ActivitiesأوBroadcastReceiversأو غيرها منServicesالتي لم يتم وضع علامة عليها بأنّها متوافقة مع وضع التشغيل المباشر أثناء التشغيل في وضع التشغيل المباشر. - يجب أيضًا ألا تصل أي مكتبات تستخدمها الخدمة إلى مساحة التخزين المحمية ببيانات الاعتماد أو تستدعي مكوّنات غير متوافقة مع ميزة "التشغيل المباشر" أثناء التشغيل في وضع "التشغيل المباشر". وهذا يعني أنّ أي مكتبات يستخدمها التطبيق ويتم استدعاؤها من الخدمة يجب أن تكون متوافقة مع وضع التشغيل المباشر، أو يجب أن يتحقّق التطبيق مما إذا كان يعمل في وضع التشغيل المباشر وألا يستدعيها في هذا الوضع. على سبيل المثال، تعمل حِزم تطوير البرامج (SDK) لمنصّة Firebase مع ميزة "التشغيل المباشر" (يمكن تضمينها في تطبيق بدون تعطيله في وضع "التشغيل المباشر")، ولكن العديد من واجهات برمجة التطبيقات في Firebase لا تتيح طلبها في وضع "التشغيل المباشر".
- إذا كان التطبيق يستخدم
Applicationمخصّصًا، يجب أن يكونApplicationأيضًا متوافقًا مع ميزة "التشغيل المباشر" (لا يمكن الوصول إلى مساحة التخزين المحمية ببيانات الاعتماد في وضع التشغيل المباشر).
إرسال رسائل مفعَّلة للتشغيل المباشر
يمكنك إرسال رسائل إلى الأجهزة في وضع التشغيل المباشر باستخدام HTTP v1 API.
يجب أن يتضمّن طلب الرسالة المفتاح "direct_boot_ok": true في خيارات AndroidConfig لنص الطلب. على سبيل المثال:
https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"token" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data": {
"score": "5x1",
"time": "15:10"
},
"android": {
"direct_boot_ok": true,
},
}