الإشعار هو رسالة يعرضها نظام التشغيل Android خارج واجهة مستخدم تطبيقك لمنح المستخدم تذكيرات أو رسائل من مستخدمين آخرين أو معلومات مهمة أخرى من تطبيقك في الوقت المناسب. ويمكن للمستخدمين النقر على الإشعار لفتح تطبيقك أو اتّخاذ إجراء مباشرةً من الإشعار.
تقدّم هذه الصفحة نظرة عامة على مواضع ظهور الإشعارات والميزات المتاحة. لبدء إنشاء الإشعارات، يُرجى الاطّلاع على مقالة إنشاء إشعار.
لمزيد من المعلومات عن تصميم الإشعارات وأنماط التفاعل، يُرجى الاطّلاع على دليل تصميم الإشعارات.
مرات الظهور على جهاز
تظهر الإشعارات تلقائيًا للمستخدمين في مواقع جغرافية وتنسيقات مختلفة. يظهر الإشعار كرمز في شريط الحالة، وكمدخل أكثر تفصيلاً في درج الإشعارات، وشارة على رمز التطبيق. تظهر الإشعارات أيضًا على الأجهزة القابلة للارتداء المقترنة.
شريط الحالة ودرج الإشعارات
عند إصدار إشعار، يظهر أولاً كرمز في شريط الحالة.
يمكن للمستخدمين التمرير سريعًا للأسفل في شريط الحالة لفتح مربّع الإشعارات، حيث يمكنهم الاطّلاع على مزيد من التفاصيل واتّخاذ إجراءات بشأن الإشعار.
يمكن للمستخدمين سحب إشعار في الدرج للأسفل لإظهار العرض الموسّع، الذي يعرض محتوى إضافيًا وأزرار إجراءات، إذا كانت متاحة. بدءًا من الإصدار Android 13، تتضمّن هذه الشاشة الموسّعة زرًا يتيح للمستخدمين إيقاف تطبيق يستخدم خدمات قيد التنفيذ في المقدّمة.
يظل الإشعار مرئيًا في مربّع الإشعارات إلى أن يغلقه التطبيق أو المستخدم.
تنبيه
بدءًا من الإصدار 5.0 من نظام التشغيل Android، يمكن أن تظهر الإشعارات بشكلٍ موجز في ملف ملتصق نافذة تُعرف باسم إشعار تنبيه. يكون هذا السلوك عادةً للإشعارات العميقة الأهمية التي يحتاج المستخدم إلى معرفتها على الفور، ولا يظهر إلا إذا كان الجهاز غير مقفل.
يظهر التنبيه عندما يُرسِله تطبيقك. ويختفي بعد لحظات، ولكنه يظل مرئيًا في مربّع الإشعارات كالمعتاد.
تشمل الشروط التي قد تؤدي إلى ظهور إشعارات التنبيه ما يلي:
يكون نشاط المستخدم في وضع ملء الشاشة، مثل عندما يستخدم التطبيق
fullScreenIntent
.يكون للإشعار أولوية عالية ويستخدم نغمات رنين أو اهتزازات على الأجهزة التي تعمل بالإصدار 7.1 من Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم.
تُعد قناة الإشعارات ذات أهمية كبيرة على الأجهزة التي تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث.
شاشة القفل
بدءًا من الإصدار 5.0 من نظام التشغيل Android، يمكن أن تظهر الإشعارات على شاشة القفل.
يمكنك تحديد ما إذا كان سيتم عرض الإشعارات التي ينشرها تطبيقك على شاشة قفل آمنة، وما هو مستوى التفاصيل التي ستظهر في حال ظهورها.
يمكن للمستخدمين استخدام إعدادات النظام لاختيار مستوى التفاصيل المعروضة في إشعارات شاشة القفل أو إيقاف جميع إشعارات شاشة القفل. بدءًا من الإصدار Android 8.0، يمكن للمستخدمين إيقاف إشعارات شاشة القفل أو تفعيلها لكل قناة إشعارات.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط مستوى visibility (مستوى الظهور) لقفل الشاشة.
شارة رمز التطبيق
في مشغّلات التطبيقات المتوافقة على الأجهزة التي تعمل بنظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، تشير شارة ملونة على رمز مشغّل التطبيقات المعنيّ، والتي تُعرف باسم نقطة الإشعار، إلى إشعارات جديدة في رمز التطبيق.
يمكن للمستخدمين النقر مع الاستمرار على رمز التطبيق للاطّلاع على إشعارات هذا التطبيق. ويمكنهم إغلاق الإشعارات أو اتّخاذ إجراء بشأنها من هذه القائمة، تمامًا مثل درج الإشعارات.
لمزيد من المعلومات حول آلية عمل الشارات، يُرجى الاطّلاع على مقالة تعديل شارة إعلام.
الأجهزة التي تعمل بنظام Wear OS
إذا كان المستخدم يملك جهاز Wear OS مقترنًا، ستظهر جميع إشعاراتك هناك تلقائيًا، بما في ذلك التفاصيل القابلة للتوسيع وأزرار الإجراءات.
يمكنك تحسين التجربة من خلال تخصيص مظهر الإشعارات على الأجهزة القابلة للارتداء وتوفير إجراءات مختلفة، بما في ذلك الردود المقترَحة والردود عن طريق الإدخال الصوتي. لمزيد من المعلومات، اطّلِع على كيفية إضافة ميزات خاصة بالأجهزة القابلة للارتداء إلى الإشعار.
بنية الإشعار
يتم تحديد تصميم الإشعار من خلال نماذج النظام، ويحدِّد تطبيقك محتويات كل جزء من النموذج. لا تظهر بعض تفاصيل الإشعار إلا في طريقة العرض الموسّعة.
في الشكل 7، تتم الإشارة إلى الأجزاء الأكثر شيوعًا من الإشعار على النحو التالي:
- الرمز الصغير: مطلوب، ويتم ضبطه باستخدام
setSmallIcon()
. - اسم التطبيق: يقدّمه النظام.
- الطابع الزمني: يقدّمه النظام، ولكن يمكنك إلغاؤه باستخدام
setWhen()
أو إخفائه باستخدامsetShowWhen(false)
. - الرمز الكبير: اختياري، ويُستخدَم عادةً لصور جهات الاتصال فقط.
لا تستخدِمه كرمز لتطبيقك. اضبط باستخدام
setLargeIcon()
. - العنوان: اختياري، يتم ضبطه باستخدام
setContentTitle()
. - النص: اختياري، يتم ضبطه باستخدام
setContentText()
.
ننصح بشدة باستخدام نماذج النظام لضمان توافق التصميم بشكلٍ سليم على جميع الأجهزة. إذا لزم الأمر، يمكنك إنشاء تنسيق إشعار مخصّص.
لمزيد من المعلومات حول كيفية إنشاء إشعار يتضمّن هذه الميزات وغيرها، يُرجى الاطّلاع على مقالة إنشاء إشعار.
إجراءات الإشعارات
على الرغم من أنّ ذلك ليس مطلوبًا، إلا أنّه من الممارسات الجيدة أن يؤدي كل إشعار إلى فتح نشاط مناسب في التطبيق عند النقر عليه. بالإضافة إلى إجراء الإشعار التلقائي هذا، يمكنك إضافة أزرار إجراءات تُكمل مهمة مرتبطة بالتطبيق من الإشعار، غالبًا بدون فتح نشاط، كما هو موضح في الشكل 8.
بدءًا من الإصدار 7.0 من نظام التشغيل Android (المستوى 24 من واجهة برمجة التطبيقات)، يمكنك إضافة إجراء للردّ على الرسائل أو إدخال نص آخر مباشرةً من الإشعار.
بدءًا من Android 10 (المستوى 29 من واجهة برمجة التطبيقات)، يمكن للمنصة إنشاء buttons buttons تلقائيًا مع إجراءات مقترَحة تستند إلى النية.
يمكنك الاطّلاع على مزيد من المعلومات عن إضافة أزرار الإجراءات في مقالة إنشاء إشعار.
طلب جهاز غير مقفل
قد تظهر للمستخدمين إجراءات الإشعارات على شاشة القفل في الجهاز. إذا كان أحد إجراءات الإشعارات يؤدي إلى تشغيل نشاط أو إرسال رد مباشر من التطبيق، يجب أن يفتح المستخدمون قفل الجهاز قبل أن يتمكّن التطبيق من تنفيذ هذا الإجراء.
في نظام التشغيل Android 12 (المستوى 31 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك ضبط إجراء إشعار بحيث يجب فتح قفل الجهاز لكي يُجري تطبيقك هذا الإجراء، بغض النظر عن سير العمل الذي يُطلقه الإجراء. يضيف هذا الخيار طبقة إضافية من الأمان إلى الإشعارات على الأجهزة المُقفَلة.
لطلب فتح قفل الجهاز قبل أن يُطلِق تطبيقك أحد إجراءات الإشعارات، عليك تمرير true
إلى setAuthenticationRequired()
عند إنشاء إجراء الإشعار، كما هو موضّح في مقتطف الرمز التالي:
Kotlin
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Java
Notification moreSecureNotification = new Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build();
إشعار قابل للتوسيع
يتم تلقائيًا اقتطاع محتوى نص الإشعار ليلائم سطرًا واحدًا. إذا أردت أن يكون إشعارك أطول، يمكنك تفعيل مساحة نص أكبر يمكن توسيعها من خلال تطبيق نموذج إضافي، كما هو موضّح في الشكل 9.
يمكنك أيضًا إنشاء إشعار قابل للتوسيع يحتوي على صورة أو بنمط البريد الوارد أو محادثة أو عناصر تحكّم في تشغيل الوسائط. لمزيد من المعلومات، يُرجى الاطّلاع على المقالة إنشاء إشعار قابل للتوسيع.
تعديلات الإشعارات والمجموعات
لتجنُّب إرسال إشعارات متعددة أو متكررة إلى المستخدمين عندتلقّي تعديلات إضافية، يمكنك تعديل إشعار حالي بدلاً من إرسال إشعار جديد أو استخدام إشعار بتنسيق البريد الوارد لعرض تعديلات المحادثة.
ومع ذلك، إذا كان من الضروري إرسال إشعارات متعددة، ننصحك بتجميع الإشعارات المنفصلة في مجموعة، وهي ميزة متوفّرة على الإصدار 7.0 من نظام التشغيل Android والإصدارات الأحدث.
تتيح لك مجموعة الإشعارات تصغير إشعارات متعددة في مشاركة واحدة في درج الإشعارات مع ملخّص. يمكن للمستخدم توسيع مجموعة الإشعارات وكل إشعار فيها تدريجيًا للحصول على مزيد من التفاصيل، كما هو موضّح في الشكل 10.
للتعرّف على كيفية إضافة إشعارات إلى مجموعة، يُرجى الاطّلاع على مقالة إنشاء مجموعة من الإشعارات.
قنوات الإشعارات
اعتبارًا من الإصدار 8.0 من Android (المستوى 26 لواجهة برمجة التطبيقات)، يجب تخصيص كل الإشعارات لقناة، وإلا لن تظهر. يتيح ذلك للمستخدمين إيقاف قنوات إشعارات معيّنة لتطبيقك بدلاً من إيقاف جميع إشعاراتك. يمكن للمستخدمين التحكّم في الخيارات المرئية والصوتية لكل قناة من إعدادات نظام Android، كما هو موضّح في الشكل 11. يمكن للمستخدمين أيضًا النقر مع الاستمرار على إشعار لتغيير السلوكيات المرتبطة بالقناة.
على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للمستخدمين إدارة الإشعارات على أساس كل تطبيق على حدة فقط. يحتوي كل تطبيق على قناة واحدة فقط على الإصدار 7.1 من نظام Android والإصدارات الأقدم.
يمكن أن يتضمّن التطبيق قنوات منفصلة لكل نوع من أنواع الإشعارات التي يُصدرها. يمكن للتطبيق أيضًا إنشاء قنوات إشعارات استجابةً للاختيارات التي يجريها المستخدِمون. على سبيل المثال، يمكنك إعداد قنوات إشعارات منفصلة لكل مجموعة محادثات أنشأها مستخدم في تطبيق مراسلة.
ويمكنك أيضًا تحديد مستوى أهمية الإشعارات في القناة على الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث، ما يؤدي إلى أن تتّبع جميع الإشعارات المنشورة في قناة الإشعارات نفسها السلوك نفسه. يردّ وصف ذلك في القسم التالي.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء قنوات الرسائل والتحذيرات وإدارتها.
أهمية الإشعارات
يستخدم Android أهمية الإشعار لتحديد مدى تأثيره في المستخدم من الناحية المرئية والصوتية. وكلما زادت أهمية الإشعار، زادت إمكانية مقاطعته للنشاط الجاري.
في الإصدار 7.1 (المستوى 25 لواجهة برمجة التطبيقات) من نظام التشغيل Android والإصدارات الأقدم، يتم تحديد أهمية الإشعار من خلال
priority
الإشعار.
في الإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تحديد أهمية الإشعار
حسب
importance
للقناة التي تم نشر الإشعار عليها. يمكن للمستخدمين تغيير أهمية قناة الإشعارات في إعدادات النظام، كما هو موضّح في الشكل 12.
في ما يلي مستويات الأهمية المحتمَلة وسلوكيات الإشعارات المرتبطة بها:
عاجل: يصدر صوتًا ويظهر كإشعار تنبيه.
مرتفع: يُصدر صوتًا.
متوسط: لا يصدر أي صوت.
منخفض: لا يصدر صوتًا ولا يظهر في شريط الحالة.
تظهر جميع الإشعارات، بغض النظر عن أهميتها، في مواضع واجهة مستخدم النظام غير المزعجة، مثل درج الإشعارات وشارة على رمز المشغِّل. ومع ذلك، يمكنك تعديل مظهر شارة الإشعار.
لمزيد من المعلومات، يُرجى الاطّلاع على كيفية ضبط ملف الوسائط على "مهم".
وضع "عدم الإزعاج"
بدءًا من Android 5.0 (المستوى 21 لواجهة برمجة التطبيقات)، يمكن للمستخدمين تفعيل وضع عدم الإزعاج، الذي يؤدي إلى كتم صوت جميع الإشعارات وإيقاف الاهتزاز. ستظل الإشعارات تظهر في واجهة مستخدِم النظام كالمعتاد، ما لم يحدِّد المستخدم غير ذلك.
تتوفّر ثلاثة مستويات في وضع "عدم الإزعاج":
- الوضع "كتم الصوت بالكامل": يمنع جميع الأصوات والاهتزازات، بما في ذلك ما يرد من التنبيهات والموسيقى والفيديو والألعاب.
- المنبّهات فقط: يحظر هذا الخيار جميع الأصوات والاهتزازات، باستثناء المنبّهات.
- الأولوية فقط: يمكن للمستخدمين ضبط الفئات على مستوى النظام التي يمكنها مقاطعتهم، مثل المنبّهات أو التذكيرات أو الأحداث أو المكالمات أو الرسائل فقط. بالنسبة إلى الرسائل والمكالمات، يمكن للمستخدمين الفلترة استنادًا إلى المُرسِل أو المُتصل، كما هو موضّح في الشكل 13.
في الإصدار 8.0 من نظام التشغيل Android (المستوى 26 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يمكن للمستخدمين أيضًا السماح بتلقّي الإشعارات من خلال فئات خاصة بالتطبيقات، والتي تُعرف أيضًا باسم القنوات، وذلك من خلال إلغاء وضع "عدم الإزعاج" على أساس كل قناة على حدة. على سبيل المثال، قد يتضمّن تطبيق الدفع قنوات للإشعارات المتعلّقة بعمليات التحويلات المالية. يمكن للمستخدم السماح بإشعارات عمليات السحب أو الإشعارات المتعلّقة بإيداع الأموال أو كليهما في وضع "الأولوية".
على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للمستخدمين السماح بتلقّي الإشعارات من تطبيق إلى آخر، بدلاً من السماح بتلقّيها من قناة إلى أخرى.
لضبط الإشعارات وفقًا لإعدادات المستخدم هذه، عليك ضبط ملف شخصي على مستوى النظام.
إشعارات الخدمات التي تعمل في المقدّمة
يجب عرض إشعار عندما يشغِّل تطبيقك خدمة تعمل في المقدّمة، وهي Service
تعمل في الخلفية لفترة طويلة ويلاحظها المستخدم، مثل مشغّل الوسائط. لا يمكن تجاهل هذا الإشعار مثل الإشعارات الأخرى. لإزالة
الإشعار، يجب إيقاف الخدمة أو إزالتها من حالة
التقديم.
لمزيد من المعلومات، يُرجى الاطّلاع على خدمات العمل في المقدّمة. إذا كنت بصدد إنشاء مشغّل وسائط، يمكنك أيضًا الاطّلاع على مقالة تشغيل الوسائط في الخلفية.
الحدود القصوى المسموح بها للمشاركات
بدءًا من الإصدار Android 8.1 (المستوى 27 لواجهة برمجة التطبيقات)، لا يمكن للتطبيقات تشغيل صوت إشعار أكثر من مرة في الثانية. إذا كان تطبيقك ينشر إشعارات متعددة في غضون ثانية واحدة، ستظهر جميعها على النحو المتوقّع، ولكن لن يصدر صوت إلا عن الإشعار الأول في كل ثانية.
ومع ذلك، يفرض Android أيضًا حدًا أقصى لعدد الإشعارات التي يتم عرضها في الساعة عند تعديل إشعار. إذا كنت تُرسِل تعديلات على إشعار واحد بشكل متكرّر جدًا، مثل نشر العديد من التعديلات في أقل من ثانية واحدة، قد يحذف النظام التعديلات.
توافق الإشعارات
تتغيّر واجهة مستخدم نظام الإشعارات في Android وواجهات برمجة التطبيقات ذات الصلة بالإشعارات باستمرار. لاستخدام أحدث ميزات واجهة برمجة تطبيقات الإشعارات مع إتاحة التوافق مع
الأجهزة القديمة، استخدِم واجهة برمجة تطبيقات الإشعارات في مكتبة الدعم،
NotificationCompat
،
وفئاتها الفرعية، بالإضافة إلى
NotificationManagerCompat
.
يتيح لك ذلك تجنُّب كتابة رمز شرطي للتحقّق من مستويات واجهات برمجة التطبيقات، لأنّ
واجهات برمجة التطبيقات هذه تتعامل مع ذلك.
يتم تعديل NotificationCompat
مع تطور المنصة لتضمين أحدث methods. ومع ذلك، لا يضمن توفّر طريقة في الإصدار NotificationCompat
توفّر الميزة المقابلة على الأجهزة القديمة. في بعض
الحالات، يؤدي استدعاء واجهة برمجة تطبيقات تم طرحها مؤخرًا إلى عدم تنفيذ أي إجراء على الأجهزة القديمة.
في ما يلي ملخّص لأهم التغييرات في السلوك حسب مستوى واجهة برمجة التطبيقات في إعلامات Android.
Android 5.0، المستوى 21 لواجهة برمجة التطبيقات
شاشة القفل والإشعارات المنبثقة
يتيح هذا الخيار للمستخدم ضبط الهاتف على وضع "عدم الإزعاج" وضبط نوع الإشعارات المسموح لها بمقاطعته عندما يكون الجهاز في وضع "التنبيهات ذات الأولوية فقط".
تضيف طرقًا لضبط ما إذا كان سيتم عرض إشعار على شاشة القفل، مثل
setVisibility()
)، وتحديد إصدار "عام" من نص الإشعار.تُضيف هذه الطريقة
setPriority()
التي تُعلم النظام بمدى انقطاع الإشعار. على سبيل المثال، يؤدي ضبط الأولوية على "عالية" إلى ظهور الإشعار كإشعار تنبيه.إتاحة استخدام ميزة "تجميع الإشعارات" على أجهزة Android Wear (المعروفة الآن باسم Wear OS) ضع الإشعارات في حزمة باستخدام رمز
setGroup()
. لا تتوفّر حزم الإشعارات، التي عُرفت لاحقًا باسم مجموعة أو حزمة، على أجهزة الكمبيوتر اللوحي أو الهواتف إلا مع نظام التشغيل Android 7.0 (المستوى 24 من واجهة برمجة التطبيقات).
Android 7.0، المستوى 24 لواجهة برمجة التطبيقات
إعادة تصميم نماذج الإشعارات لتركيز الاهتمام على الصورة الرئيسية و صورة الملف الشخصي
إضافة ثلاثة نماذج إشعارات: أحدها لتطبيقات المراسلة والآخران لتزيين طرق عرض المحتوى المخصّصة باستخدام ميزة الاستخدام القابل للتوسيع وغيرها من ديكورات النظام
إتاحة استخدام ميزة "مجموعات الإشعارات" على الأجهزة المحمولة، مثل الهواتف والأجهزة اللوحية يستخدم واجهة برمجة التطبيقات نفسها المستخدَمة في حزم إشعارات Android Wear (المعروفة الآن باسم Wear OS) التي تم تقديمها في Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات).
السماح للمستخدمين بالردّ داخل الإشعار باستخدام الردّ المضمّن يمكنهم إدخال نص، ويتم توجيهه بعد ذلك إلى التطبيق الرئيسي للإشعار.
Android 8.0، المستوى 26 لواجهة برمجة التطبيقات
يؤدي هذا الخيار إلى وضع الإشعارات الفردية في قناة معيّنة.
السماح للمستخدمين بإيقاف الإشعارات لكل قناة، بدلاً من إيقاف جميع الإشعارات من تطبيق
تجعل التطبيقات التي تتضمّن إشعارات نشطة تعرِض شارة إشعار فوق رمز التطبيق على الشاشة الرئيسية أو شاشة مشغّل التطبيقات.
السماح للمستخدمين بتوقيف إشعار مؤقتًا من الدرج يمكنك ضبط مهلة تلقائية للإشعار.
يتيح لك ضبط لون خلفية الإشعار.
نقل بعض واجهات برمجة التطبيقات المتعلّقة بسلوك الإشعارات من
Notification
إلىNotificationChannel
على سبيل المثال، استخدِمNotificationChannel.setImportance()
بدلاً منNotificationCompat.Builder.setPriority()
على نظام التشغيل Android 8.0 والإصدارات الأحدث.
الإصدار 13.0 من نظام التشغيل Android، المستوى 33 لواجهة برمجة التطبيقات
- تضيف إذن وقت التشغيل. لكي يتمكن تطبيقك من إرسال إشعاراتغير معفاة ، على المستخدم منح تطبيقك هذا الإذن.
الإصدار 14.0 من نظام التشغيل Android، المستوى 34 لواجهة برمجة التطبيقات
حصر الإشعارات بملء الشاشة بالتطبيقات التي توفّر المكالمات والتحذيرات استخدِم واجهة برمجة التطبيقات
NotificationManager.canUseFullScreenIntent
للتحقّق مما إذا كان تطبيقك يملك الإذن. وإذا لم يكن الأمر كذلك، يمكن لتطبيقك استخدامACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
لفتح صفحة الإعدادات حيث يمكن للمستخدمين منح الإذن.يغيّر هذا الإعداد طريقة تفاعل المستخدمين مع الإشعارات غير القابلة للإغلاق من خلال السماح للمستخدمين بإغلاق الإشعارات حتى في حال ضبط العلامة
Notification.FLAG_ONGOING_EVENT
. لا ينطبق ذلك على إشعاراتCallStyle
في حال تم ضبط العلامةNotification.FLAG_ONGOING_EVENT
أو أداة التحكّم في سياسة الجهاز (DPC) والحِزم المتوافقة للمؤسسات. ولا ينطبق ذلك أيضًا عندما يكون الهاتف مقفلاً أو إذا اختار العميل محو الكل.