إذا أردت إرسال FCM رسائل إلى التطبيقات قبل إلغاء قفل الجهاز، يمكنك تفعيل وضع التشغيل المباشر. على سبيل المثال، إذا أردت أن يتلقّى مستخدمو تطبيقك إشعارات المنبّه حتى على جهاز مقفل.
عند إنشاء حالة الاستخدام هذه، عليك مراعاة أفضل الممارسات و القيود العامة المتعلّقة ب وضع التشغيل المباشر. من المهم مراعاة إمكانية رؤية الرسائل المفعَّلة في وضع التشغيل المباشر. يمكن لأي مستخدم لديه إذن الوصول إلى الجهاز الاطّلاع على هذه الرسائل بدون إدخال بيانات اعتماد المستخدم.
المتطلبات الأساسية
- يجب إعداد الجهاز لوضع التشغيل المباشر.
- يجب أن يكون على الجهاز إصدار حديث من "خدمات Google Play" (الإصدار 19.0.54 أو إصدار أحدث).
- يجب أن يستخدم التطبيق حزمة FCM SDK (
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أخرى غير مصنّفة على أنّها متوافقة مع وضع التشغيل المباشر أثناء تشغيلها في هذا الوضع. - يجب ألا تصل أي مكتبات تستخدمها الخدمة إلى مساحة التخزين المحمية ببيانات الاعتماد أو تستدعي مكوّنات غير متوافقة مع وضع التشغيل المباشر أثناء تشغيلها في هذا الوضع. يعني ذلك أنّ أي مكتبات يستخدمها التطبيق ويتم استدعاؤها من الخدمة يجب أن تكون متوافقة مع وضع التشغيل المباشر، أو يجب أن يتحقّق التطبيق مما إذا كان يتم تشغيله في وضع التشغيل المباشر وألا يستدعيها في هذا الوضع. على سبيل المثال، تعمل حِزم Firebase SDK مع وضع التشغيل المباشر (يمكن تضمينها في تطبيق بدون أن يؤدي ذلك إلى تعطّله في وضع التشغيل المباشر)، ولكن لا يمكن استدعاء العديد من واجهات Firebase API في وضع التشغيل المباشر.
- إذا كان التطبيق يستخدم
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,
},
}