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

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

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

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

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

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

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

    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 في وضع التشغيل المباشر. يمكنك التحقّق من ذلك باستخدام المتطلبات التالية:

  • يجب ألا تصل الخدمة إلى وحدة التخزين المحمية ببيانات الاعتماد أثناء تشغيلها في وضع &quot;التشغيل المباشر&quot;.
  • يجب ألا تحاول الخدمة استخدام مكوّنات، مثل 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,
    },
}