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

تتضمّن بطاقات الإشعارات المُحسّنة خصائص المظهر التالية:
- موسّع تلقائيًا
- غير قابلة للتصغير
يجب أن يستوفي الإشعار المتطلبات التالية ليكون مؤهلاً كإشعار مباشر:
- يجب أن يكون الخيار 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
هو إجراء الهدف الذي يسمح للتطبيقات بتوجيه المستخدمين إلى "الإعدادات" لتفعيل هذه الميزة.
معايير الاستخدام
استخدِم ميزة "الإشعارات المباشرة" للأنشطة الجارية التي يبدأها المستخدمون وتتطلّب استجابة سريعة.
مستمر
يجب أن يمثّل "الإشعار المباشر" نشاطًا قيد التنفيذ حاليًا، مع تحديد وقت بدء ووقت انتهاء مختلفَين. إذا حدث نشاط في الماضي، لا تستخدِم Live Update. بدلاً من ذلك، استخدِم إشعارًا عاديًا. وينطبق ذلك أيضًا على الأحداث التي لم تبدأ بعد، مع العلم أنّه يمكن استخدام ميزة "تعديل مباشر" للأحداث التي ستنطلق قريبًا.
تمثّل "التحديثات المباشرة" الأنشطة الجارية. لا تستخدِم ميزة "التحديثات المباشرة" لتوفير وصول أسرع إلى وظائف التطبيق. إذا أردت إجراء ذلك، استخدِم أداة تطبيق أو مربّعًا مخصّصًا في "الإعدادات السريعة".
- الاستخدامات المناسبة: التنقّل النشط والمكالمات الهاتفية الجارية وتتبُّع رحلات مشاركة المركبات وتتبُّع عمليات توصيل الطعام
- الاستخدامات غير الملائمة: الإعلانات والعروض الترويجية ورسائل المحادثة والتنبيهات وأحداث التقويم القادمة وإمكانية الوصول السريع إلى ميزات التطبيق
بدأها المستخدم
يجب أن تمثّل معظم "الإشعارات المباشرة" الأنشطة التي يبدأها المستخدم بشكل صريح، مثل بدء تمرين أو بدء التنقّل بالسيارة أو طلب سيارة أجرة. عدم عرض معلومات محيطة، مثل تلك المتعلقة ببيئة المستخدم أو اهتماماته أو الأحداث القادمة، في "تحديث مباشر" عدم السماح للأنشطة التي يتم تشغيلها من قِبل جهات أخرى بإنشاء "إشعارات فورية"
في بعض الأحيان، قد ينفّذ المستخدم إجراءً يؤدي إلى بدء نشاط لفترة زمنية في المستقبل. على سبيل المثال، إذا اشترى المستخدم تذاكر رحلة طيران أو حفل موسيقي، أو اشترك في بطولة، أو أشار بأي طريقة أخرى إلى حضوره حدثًا حساسًا للوقت في المستقبل. في هذه الحالات، قد يكون من المناسب عرض "إشعار مباشر" تلقائيًا عند بدء الحدث المجدوَل. ومع ذلك، يجب أن تضبط التطبيقات مشغّلاتها بحيث لا تظهر إلا عندما يكون النشاط وشيكًا. إذا أشار المستخدم بشكل صريح إلى أنّه يريد بدء مراقبة حدث يتم بثه في الخلفية، مثل مباراة رياضية، يمكنك البدء في نشر "آخر الأخبار" لهذا الحدث. ومع ذلك، يجب أيضًا تضمين إجراء إزالة التثبيت في الإشعار المرتبط.
إشعارات حساسة للوقت
لا تعرض "تحديثًا مباشرًا" إلا إذا كان يتطلّب انتباه المستخدم طوال مدة النشاط. تتمثّل إحدى حالات الاستخدام الرئيسية لميزة "الاطّلاع السريع" في المراقبة، حيث يستفيد المستخدم بشكل كبير من إلقاء نظرة سريعة على الإشعارات من خلال هذه الميزة لمتابعة الحالة المتغيرة للنشاط.
يكون "التحديث المباشر" مناسبًا غالبًا للأنشطة التي تنتقل بين "التحديثات المباشرة" والإشعارات العادية. على سبيل المثال، يكون عرض إشعار بشأن بطاقة صعود الطائرة مناسبًا قبل ساعات عديدة من موعد رحلة المستخدم، ولكن يجب أن يتحوّل الإشعار إلى "إشعار مباشر" فقط عندما تكون لدى المستخدم حاجة ملحّة، مثل عندما يصل إلى المطار أو المكان أو عند بدء الصعود إلى الطائرة. في المقابل، لا يكون التحديث المباشر مناسبًا لتتبُّع حزمة، لأنّ المستخدم لا يحتاج إلى مراقبة ذلك باستمرار.
شرائح الحالة
تتيح شرائح الحالة للمستخدمين تتبُّع "التحديثات الحية" عندما لا يكون الإشعار معروضًا. استخدِم setShortCriticalText
أو setWhen
لنقل معلومات الحالة المهمة المتعلقة بالإشعار الذي يركّز على مستوى تقدّمك.

Notification.Builder#setSmallIcon
.
Notification.Builder#setShortCriticalText
لعرض الوقت المطلق.
Notification.Builder#setShortCriticalText
لنقل المعلومات المهمة.عندما يكون الوقت
يؤدي وقت "عندما" إلى بدء عد تنازلي لمدة بقاء الإشعار، ما لم يتم إغلاق الإشعار أو تعديله.
- يجب أن يكون وقت "متى" بعد دقيقتَين على الأقل من الوقت الحالي: إذا كان الوقت الحالي هو 10:05 صباحًا وتم ضبط وقت "متى" على 10:10 صباحًا، ستعرض الشريحة "5 دقائق".
- إذا كان وقت "متى" قبل أكثر من دقيقة واحدة، لن يظهر الإشعار.
- استخدِم
setShowWhen
لتحديدFALSE
إذا كنت لا تريد أن يتضمّن الإشعار المعروض في اللوحة المنسدلة وقتًا.
مظهر شريحة الحالة
تتضمّن شريحة الحالة دائمًا رمزًا، ويمكن أن تتضمّن نصًا اختياريًا. يبلغ الحد الأقصى لعرض الشريحة 96 وحدة بكسل مستقلة عن الكثافة. عرض النص استنادًا إلى المعايير التالية:
- إذا كان عدد الأحرف أقل من 7، اعرض النص بأكمله.
- إذا كان سيتم عرض أقل من نصف النص، اعرض الرمز فقط.
- إذا كان سيتم عرض أكثر من نصف النص، اعرض أكبر قدر ممكن من النص.
الإغلاق
يمكن للمستخدمين التحكّم في إمكانية ظهور الإشعارات في لوحة الإشعارات. قد يؤدي نشر "تحديثات حية" غير مرغوب فيها إلى أن يبطل المستخدمون إذن التطبيق بالنشر.
لمنع المستخدمين من إيقاف ميزة "الأخبار المباشرة" تمامًا، تجنَّب نشر تحديثات قد يرفضها المستخدمون. لا تعِد نشر "التحديثات الحية" التي تجاهلها المستخدم. استخدِم
setDeleteIntent
لرصد التحديثات التي تم تجاهلها.
يمكنك الاطّلاع على التطبيق النموذجي لتجربة واجهات برمجة التطبيقات هذه.