إنشاء إشعار "أخبار مباشرة"

يروّج النظام لإشعارات "التحديثات الفورية". تظهر الإشعارات الترويجية بشكلٍ بارز على مساحات عرض النظام، بما في ذلك أعلى درج الإشعارات وشاشة القفل، وكشريحة في شريط الحالة.

الشكل 1. مثال على إشعار "تحديث فوري"

تتضمّن بطاقات الإشعارات المُحسّنة خصائص المظهر التالية:

  • موسّع تلقائيًا
  • غير قابلة للتصغير

يجب أن يستوفي إشعارك المتطلّبات التالية ليُعتبر تحديثًا فوريًا:

  • يجب أن يكون الخيار Standard/No Style أو BigTextStyle أو CallStyle أو ProgressStyle.
  • يجب طلب الإذن التالي غير المرتبط بإذن التشغيل في ملف بيان Android android.permission.POST_PROMOTED_NOTIFICATIONS.
  • يجب طلب الترقية باستخدام EXTRA_REQUEST_PROMOTED_ONGOING أو NotificationCompat.Builder#requestPromotedOngoing.
  • يجب أن تكون القيمة ongoing (اضبط FLAG_ONGOING_EVENT).
  • يجب أن يتضمّن مجموعة contentTitle.
  • يجب ألا يتم ضبط أي customContentView (بدون RemoteViews).
  • يجب ألا يكون ملخّصًا لمجموعة باستخدام setGroupSummary.
  • يجب ألا setColorized إلى TRUE.
  • يجب ألّا تحتوي قناة الإشعارات على IMPORTANCE_MIN.

خصائص العرض الترويجي

تساعدك واجهات برمجة التطبيقات التالية في تحديد ما إذا كان النظام سيروّج لإشعارك:

  • يشير Notification.FLAG_PROMOTED_ONGOING إلى ما إذا كان الإشعار يتم الترويج له.
  • يتحقق Notification.hasPromotableCharacteristics() مما إذا كان بإمكان النظام ترقية الإشعار. لا تأخذ هذه الطريقة في الاعتبار ما إذا كان المستخدم قد أوقف ميزة "التحديثات الفورية" للتطبيق في الإعدادات.
  • تتحقّق NotificationManager.canPostPromotedNotifications() مما إذا كان بإمكان تطبيقك نشر إشعار ترويجي، مثلاً، إذا فعَّل المستخدم الإشعار أو أوقفه في الإعدادات.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS هو إجراء الهدف الذي يسمح للتطبيقات بتوجيه المستخدمين إلى "الإعدادات" لتفعيل هذه الميزة.

معايير الاستخدام

استخدِم ميزة "التحديثات الفورية" للأنشطة الجارية التي يبدأها المستخدمون والتي تتطلّب دقة في التوقيت.

الأنشطة المستمرة

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

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

  • الاستخدامات المناسبة: التنقّل النشط والمكالمات الهاتفية الجارية وتتبّع مشاركة الرحلة وتوصيل الطعام
  • الاستخدامات غير الملائمة: الإعلانات والعروض الترويجية ورسائل المحادثة والتنبيهات وأحداث التقويم القادمة وإمكانية الوصول السريع إلى ميزات التطبيق

الأنشطة التي يبدأها المستخدم

يجب أن تمثّل معظم "التحديثات الفورية" الأنشطة التي يبدأها المستخدم صراحةً، مثل بدء تمرين أو بدء التنقّل بالسيارة أو طلب سيارة أجرة. لا تعرض معلومات محيطة، مثل معلومات عن البيئة أو الاهتمامات أو الأحداث القادمة للمستخدم، في تحديث فوري. لا تسمح بإنشاء "تحديثات فورية" من الأنشطة التي تبدأها أطراف أخرى.

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

عرض الإشعار في الوقت المناسب

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

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

شرائح الحالة

تسمح شرائح الحالة للمستخدمين بتتبُّع "التحديثات الفورية" عندما يكون الإشعار غير معروض. استخدِم setShortCriticalText أو setWhen لإرسال معلومات الحالة المهمة بشأن الإشعار الذي يركز على مستوى التقدّم.

شريحة حالة تتضمّن رمزًا
الشكل 2. تعرض الحالة غير المحدّدة الرمز الصغير Notification.Builder#setSmallIcon.
شريحة حالة تتضمن الوقت
الشكل 3. استخدِم Notification.Builder#setShortCriticalText لعرض الوقت المطلق.
شريحة حالة تتضمّن معلومات
الشكل 4. استخدِم Notification.Builder#setShortCriticalText لنقل المعلومات المهمة.

عندما يكون الوقت

هو الوقت الذي يبدأ فيه العد التنازلي لمدة ظهور الإشعار، ما لم يتم إغلاق الإشعار أو تعديله.

  • يجب أن يكون وقت "متى" بعد دقيقتَين على الأقل من الوقت الحالي: إذا كان الوقت الحالي هو 10:05 صباحًا وتم ضبط وقت "متى" على 10:10 صباحًا، ستعرض الشريحة "5 دقائق".
  • إذا كان وقت "متى" قبل أكثر من دقيقة واحدة، لن يظهر الإشعار.
  • استخدِم setShowWhen إلى FALSE إذا كنت لا تريد أن يعرض الإشعار المظلّل وقتًا.

مظهر شريحة الحالة

تتضمّن شريحة الحالة دائمًا رمزًا، ويمكن أن تتضمّن نصًا اختياريًا. يبلغ الحد الأقصى لعرض الشريحة 96 وحدة بكسل مستقلة عن الكثافة. عرض النص استنادًا إلى المعايير التالية:

  • إذا كان النص يضم أقل من 7 أحرف، اعرض النص بأكمله.
  • إذا كان سيتم عرض أقل من نصف النص، اعرض الرمز فقط.
  • إذا كان سيتم عرض أكثر من نصف النص، اعرض أكبر قدر ممكن من النص.

الإغلاق

يمكن للمستخدمين التحكّم في مستوى ظهور الإشعارات في مركز الإشعارات. قد يؤدي نشر "تحديثات فورية" غير مرغوب فيها إلى أن يبطل المستخدمون إذن نشر التطبيق.

لمنع المستخدمين من إيقاف ميزة "التحديثات الفورية" نهائيًا، تجنَّب نشر تحديثات قد يغلقها المستخدمون. لا تُعيد نشر "التحديثات الفورية" التي أغلقها المستخدم. استخدِم setDeleteIntent لرصد التحديثات التي تم تجاهلها.

يمكنك الاطّلاع على التطبيق النموذجي لتجربة واجهات برمجة التطبيقات هذه.