تلقّي رسائل "المراسلة عبر السحابة الإلكترونية من Firebase" في وضع التشغيل المباشر

إذا أردت إرسال FCM رسائل إلى التطبيقات قبل إلغاء قفل الجهاز، يمكنك تفعيل وضع التشغيل المباشر. على سبيل المثال، إذا أردت أن يتلقّى مستخدمو تطبيقك إشعارات المنبّه حتى على جهاز مقفل.

عند إنشاء حالة الاستخدام هذه، عليك مراعاة أفضل الممارسات و القيود العامة المتعلّقة ب وضع التشغيل المباشر. من المهم مراعاة إمكانية رؤية الرسائل المفعَّلة في وضع التشغيل المباشر. يمكن لأي مستخدم لديه إذن الوصول إلى الجهاز الاطّلاع على هذه الرسائل بدون إدخال بيانات اعتماد المستخدم.

المتطلبات الأساسية

  • يجب إعداد الجهاز لوضع التشغيل المباشر.
  • يجب أن يكون على الجهاز إصدار حديث من "خدمات Google Play" (الإصدار 19.0.54 أو إصدار أحدث).
  • يجب أن يستخدم التطبيق حزمة FCM SDK (com.google.firebase:firebase-messaging) لتلقّي FCM رسائل.

تفعيل معالجة الرسائل في وضع التشغيل المباشر في تطبيقك

  1. في ملف Gradle على مستوى التطبيق، أضِف تبعية لمكتبة دعم التشغيل المباشر FCM:

    implementation 'com.google.firebase:firebase-messaging-directboot:20.2.0'
    
  2. اجعل 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,
    },
}