الإشعار هو رسالة يعرضها Android خارج واجهة مستخدم تطبيقك لتزويد المستخدم بتذكيرات أو رسائل من أشخاص آخرين أو غيرها من المعلومات في الوقت المناسب من تطبيقك. يمكن للمستخدمين النقر على الإشعار لفتح تطبيقك أو اتخاذ إجراء مباشرةً من الإشعار.
تقدّم هذه الصفحة نظرة عامة على أماكن ظهور الإشعارات والميزات المتاحة.
أدلة الاستخدام
توضّح لك الأدلة التالية كيفية تنفيذ ميزات الإشعارات المختلفة في تطبيقك:
- إنشاء إشعار: تعرَّف على كيفية إنشاء إشعار أساسي وإصداره.
- إذن إرسال الإشعارات:
تعرَّف على كيفية التعامل مع إذن التشغيل
POST_NOTIFICATIONS. - قنوات الإشعارات: تتيح للمستخدمين التحكّم في طريقة عمل الإشعارات.
- الإشعارات القابلة للتوسيع:
تعرض المزيد من المحتوى باستخدام أنماط مثل
BigTextStyleأوMessagingStyle. - الفقاعات: يمكنك استخدام تراكبات عائمة قابلة للتوسيع للمحادثات.
- الإشعارات التي تركّز على مستوى التقدّم: تتبّع الرحلات التي يبدأها المستخدم، مثل الرحلات المشتركة وعمليات التسليم.
- الإشعارات بأسلوب المكالمات: تميّز المكالمات الواردة والجارية عن أنواع الإشعارات الأخرى.
- إشعارات التحديثات الفورية: تتبّع مستوى تقدّم الأنشطة المستمرة في الخلفية
- أدلّة الإشعارات الخاصة بـ View: أدلّة لتنفيذ الإشعارات في التطبيقات المستندة إلى View.
لمزيد من المعلومات حول تصميم الإشعارات وأنماط التفاعل، يُرجى الاطّلاع على دليل تصميم الإشعارات.
الظهور على جهاز
تظهر الإشعارات تلقائيًا للمستخدمين في أماكن وأشكال مختلفة. يظهر الإشعار كرمز في شريط الحالة، وكإدخال أكثر تفصيلاً في درج الإشعارات، وكشارة على رمز التطبيق.
السلوك على جميع الأجهزة
تظهر الإشعارات أيضًا على الأجهزة القابلة للارتداء المقترنة تلقائيًا. في الحالات التي يكون فيها محتوى الإشعار مرتبطًا بالجهاز المصدر فقط، استخدِم setLocalOnly(). ومن الأمثلة على ذلك إشعار يؤكد اكتمال تنزيل الوسائط. لمزيد من الإرشادات المتعلّقة بإشعارات Wear OS، يُرجى الاطّلاع على إرشادات إشعارات Wear OS.
شريط الحالة ودرج الإشعارات
عند إصدار إشعار، يظهر أولاً كرمز في شريط الحالة.
يمكن للمستخدمين التمرير سريعًا لأسفل على شريط الحالة لفتح درج الإشعارات، حيث يمكنهم عرض المزيد من التفاصيل واتخاذ إجراءات مع الإشعار.
يمكن للمستخدمين سحب الإشعار للأسفل في لوحة الإشعارات للكشف عن العرض الموسّع، والذي يعرض محتوى إضافيًا وأزرار إجراءات، إذا تم توفيرها. بدءًا من الإصدار Android 13، يتضمّن هذا العرض الموسّع زرًا يتيح للمستخدمين إيقاف تطبيق يتضمّن خدمات تعمل في المقدّمة.
يظل الإشعار مرئيًا في درج الإشعارات إلى أن يتم إغلاقه من قِبل التطبيق أو المستخدم.
تنبيه
بدءًا من الإصدار Android 5.0، يمكن أن تظهر الإشعارات لفترة وجيزة في نافذة عائمة تُسمى إشعارًا عائمًا. يتم استخدام هذا السلوك عادةً للإشعارات المهمة التي يحتاج المستخدم إلى معرفتها على الفور، ولا يظهر إلا إذا كان الجهاز غير مقفل.
يظهر التنبيه عندما يُصدر تطبيقك الإشعار. ويختفي بعد لحظة، ولكنه يظل مرئيًا في درج الإشعارات كالمعتاد.
تشمل الحالات التي قد تؤدي إلى ظهور الإشعارات العاجلة ما يلي:
يكون نشاط المستخدم في وضع ملء الشاشة، مثلاً عندما يستخدم التطبيق
fullScreenIntent.يتمتع الإشعار بأولوية عالية ويستخدم نغمات الرنين أو الاهتزازات على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم.
قناة الإشعارات ذات أهمية كبيرة على الأجهزة التي تعمل بنظام التشغيل Android 8.0 (مستوى واجهة برمجة التطبيقات 26) والإصدارات الأحدث.
شاشة القفل
بدءًا من الإصدار Android 5.0، يمكن أن تظهر الإشعارات على شاشة القفل.
يمكنك ضبط إعداداتك برمجيًا لتحديد ما إذا كانت الإشعارات التي ينشرها تطبيقك ستظهر على شاشة قفل آمنة، وإذا كان الأمر كذلك، يمكنك تحديد مستوى التفاصيل المرئية.
يمكن للمستخدمين استخدام إعدادات النظام لاختيار مستوى التفاصيل التي تظهر في إشعارات شاشة القفل أو لإيقاف جميع إشعارات شاشة القفل. بدءًا من الإصدار Android 8.0، يمكن للمستخدمين إيقاف إشعارات شاشة القفل أو تفعيلها لكل قناة إشعارات.
لمزيد من المعلومات، يُرجى الاطّلاع على ضبط مستوى ظهور الإشعارات على شاشة القفل.
شارة رمز التطبيق
في مشغّلات التطبيقات المتوافقة على الأجهزة التي تعمل بنظام التشغيل Android 8.0 (مستوى واجهة برمجة التطبيقات 26) والإصدارات الأحدث، تشير رموز التطبيقات إلى الإشعارات الجديدة من خلال شارة ملوّنة تُعرف باسم نقطة الإشعار على رمز مشغّل التطبيقات المقابل.
يمكن للمستخدمين النقر مع الاستمرار على رمز التطبيق للاطّلاع على إشعاراته، ويمكنهم إغلاق الإشعارات أو اتخاذ إجراء بشأنها من تلك القائمة، كما هو الحال في درج الإشعارات.
لمزيد من المعلومات حول طريقة عمل الشارات، يُرجى الاطّلاع على مقالة تعديل شارة إشعار.
الأجهزة التي تعمل بنظام Wear OS
إذا كان لدى المستخدم جهاز Wear OS مقترن، ستظهر جميع الإشعارات عليه تلقائيًا، بما في ذلك التفاصيل القابلة للتوسيع وأزرار الإجراءات.
يمكنك تحسين التجربة من خلال تخصيص مظهر الإشعارات على الأجهزة القابلة للارتداء وتقديم إجراءات مختلفة، بما في ذلك الردود المقترَحة والردود الصوتية. لمزيد من المعلومات، يمكنك الاطّلاع على كيفية إضافة ميزات خاصة بالأجهزة القابلة للارتداء إلى الإشعار.
بنية الإشعار
يتم تحديد تصميم الإشعار من خلال نماذج النظام، ويحدّد تطبيقك المحتوى لكل جزء من النموذج. تظهر بعض تفاصيل الإشعار فقط في العرض الموسّع.
في ما يلي الأجزاء الأكثر شيوعًا في الإشعار، كما هو موضّح في الشكل 7:
- الرمز الصغير: مطلوب، ويتم ضبطه باستخدام
setSmallIcon(). - اسم التطبيق: يوفّره النظام.
- الطابع الزمني: يوفّره النظام، ولكن يمكنك إلغاؤه باستخدام
setWhen()أو إخفاؤه باستخدامsetShowWhen(false). - رمز كبير: اختياري، ويُستخدم عادةً لصور جهات الاتصال فقط
ولا تستخدمه كرمز لتطبيقك. تم ضبطها باستخدام
setLargeIcon(). - العنوان: اختياري، يتم ضبطه باستخدام
setContentTitle(). - النص: اختياري، يتم ضبطه باستخدام
setContentText().
ننصح بشدة باستخدام نماذج النظام لضمان توافق التصميم بشكل صحيح على جميع الأجهزة. إذا لزم الأمر، يمكنك إنشاء تنسيق مخصّص للإشعارات.
لمزيد من المعلومات حول كيفية إنشاء إشعار يتضمّن هذه الميزات وغيرها، يُرجى الاطّلاع على مقالة إنشاء إشعار.
إجراءات الإشعارات
على الرغم من أنّ ذلك ليس مطلوبًا، من الممارسات الجيدة أن يفتح كل إشعار نشاطًا مناسبًا في التطبيق عند النقر عليه. بالإضافة إلى إجراء الإشعار التلقائي هذا، يمكنك إضافة أزرار إجراءات لإكمال مهمة متعلقة بالتطبيق من الإشعار، وغالبًا بدون فتح نشاط، كما هو موضّح في الشكل 8.
بدءًا من الإصدار 7.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 24)، يمكنك إضافة إجراء للردّ على الرسائل أو إدخال نص آخر مباشرةً من الإشعار.
بدءًا من الإصدار Android 10 (مستوى واجهة برمجة التطبيقات 29)، يمكن للنظام الأساسي إنشاء أزرار إجراءات تلقائيًا مع إجراءات مقترَحة مستندة إلى الأهداف.
يمكنك الاطّلاع على مزيد من المعلومات حول إضافة أزرار الإجراءات في مقالة إنشاء إشعار.
طلب فتح قفل الجهاز
قد تظهر للمستخدمين إجراءات الإشعارات على شاشة قفل الجهاز. إذا تسبّب إجراء الإشعار في تشغيل التطبيق لنشاط معيّن أو إرسال ردّ مباشر، يجب على المستخدمين فتح قفل الجهاز قبل أن يتمكّن التطبيق من استدعاء إجراء الإشعار هذا.
في نظام التشغيل Android 12 (مستوى واجهة برمجة التطبيقات 31) والإصدارات الأحدث، يمكنك ضبط إجراء إشعار بحيث يجب فتح قفل الجهاز لكي يستدعي تطبيقك هذا الإجراء، بغض النظر عن سير العمل الذي يطلقه الإجراء. يضيف هذا الخيار طبقة إضافية من الأمان للإشعارات على الأجهزة المقفلة.
لطلب فتح قفل الجهاز قبل أن يستدعي تطبيقك إجراءً معيّنًا للإشعار، مرِّر true إلى setAuthenticationRequired() عند إنشاء إجراء الإشعار، كما هو موضّح في مقتطف الرمز التالي:
val intent = Intent( context, null /** Replace with a valid target activity */ ) val moreSecureNotification = NotificationCompat.Action.Builder( 0, "Reply", PendingIntentCompat.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE, false) ) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
إشعار قابل للتوسيع
يتم تلقائيًا اقتطاع محتوى الإشعار النصي ليظهر في سطر واحد. إذا أردت أن يكون الإشعار أطول، يمكنك تفعيل مربّع نص أكبر يمكن توسيعه من خلال تطبيق نموذج إضافي، كما هو موضّح في الشكل 9.
يمكنك أيضًا إنشاء إشعار قابل للتوسيع يتضمّن صورة، أو إشعار بنمط البريد الوارد، أو إشعار يتضمّن محادثة، أو إشعار يتضمّن عناصر التحكّم في تشغيل الوسائط. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء إشعار قابل للتوسيع.
تعديلات الإشعارات والمجموعات
لتجنُّب إغراق المستخدمين بإشعارات متعددة أو مكرّرة عندما يكون لديك تحديثات إضافية، يمكنك تعديل إشعار حالي بدلاً من إصدار إشعار جديد أو استخدام الإشعار بنمط البريد الوارد لعرض تحديثات المحادثة.
ومع ذلك، إذا كان من الضروري إرسال إشعارات متعددة، ننصحك بتجميع الإشعارات المنفصلة في مجموعة واحدة، وهو خيار متاح على نظام التشغيل Android 7.0 والإصدارات الأحدث.
تتيح لك مجموعة الإشعارات تصغير إشعارات متعددة في منشور واحد في درج الإشعارات مع ملخص. يمكن للمستخدم توسيع مجموعة الإشعارات وكل إشعار داخلها تدريجيًا للحصول على مزيد من التفاصيل، كما هو موضّح في الشكل 10.
لمعرفة كيفية إضافة إشعارات إلى مجموعة، يُرجى الاطّلاع على مقالة إنشاء مجموعة من الإشعارات.
قنوات الإشعارات
بدءًا من الإصدار Android 8.0 (مستوى واجهة برمجة التطبيقات 26)، يجب تخصيص جميع الإشعارات لقناة معيّنة، وإلا لن تظهر. يتيح ذلك للمستخدمين إيقاف قنوات إشعارات محدّدة لتطبيقك بدلاً من إيقاف جميع الإشعارات. ويمكن للمستخدمين التحكّم في الخيارات المرئية والصوتية لكل قناة من إعدادات نظام Android، كما هو موضّح في الشكل 11. يمكن للمستخدمين أيضًا النقر مع الاستمرار على إشعار لتغيير سلوكيات القناة المرتبطة به.
على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للمستخدمين إدارة الإشعارات لكل تطبيق على حدة فقط. يكون لكل تطبيق قناة واحدة فقط على الإصدار 7.1 من نظام التشغيل Android والإصدارات الأقدم.
يمكن أن يتضمّن التطبيق قنوات منفصلة لكل نوع من الإشعارات التي يصدرها. يمكن للتطبيق أيضًا إنشاء قنوات إشعارات استجابةً للخيارات التي يحدّدها المستخدمون. على سبيل المثال، يمكنك إعداد قنوات إشعارات منفصلة لكل مجموعة محادثات ينشئها المستخدم في تطبيق مراسلة.
تُحدِّد القناة أيضًا مستوى أهمية الإشعارات على الإصدار 8.0 من Android والإصدارات الأحدث، لذا فإنّ جميع الإشعارات المنشورة على قناة الإشعارات نفسها لها السلوك نفسه. يتم توضيح ذلك في القسم التالي.
لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء قنوات الإشعارات وإدارتها.
أهمية الإشعار
يستخدم Android أهمية الإشعار لتحديد مدى مقاطعة الإشعار للمستخدم بصريًا وصوتيًا. وكلما زادت أهمية الإشعار، زاد تأثيره في المقاطعة.
في الإصدار 7.1 من نظام التشغيل Android (المستوى 25 من واجهة برمجة التطبيقات) والإصدارات الأقدم، يتم تحديد أهمية الإشعار من خلال priority الخاصة بالإشعار.
في نظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تحديد أهمية الإشعار من خلال importance القناة التي يتم نشر الإشعار فيها. يمكن للمستخدمين تغيير مدى أهمية قناة الإشعارات في إعدادات النظام، كما هو موضّح في الشكل 12.
في ما يلي مستويات الأهمية المحتملة وسلوكيات الإشعارات المرتبطة بها:
مهمّة عاجلة: يصدر صوت ويظهر كتنبيه.
عالية: يصدر صوتًا.
متوسطة: لا يصدر أي صوت.
منخفض: لا يصدر صوتًا ولا يظهر في شريط الحالة.
تظهر جميع الإشعارات، بغض النظر عن أهميتها، في أماكن واجهة المستخدم الخاصة بالنظام التي لا تسبب أي مقاطعة، مثل درج الإشعارات وكشارة على رمز مشغّل التطبيقات. ومع ذلك، يمكنك تعديل مظهر شارة الإشعار.
لمزيد من المعلومات، يمكنك الاطّلاع على كيفية ضبط مستوى الأهمية.
وضع "عدم الإزعاج"
بدءًا من الإصدار 5.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 21)، يمكن للمستخدمين تفعيل وضع "عدم الإزعاج"، الذي يكتم الصوت والاهتزاز لجميع الإشعارات. وستظل الإشعارات تظهر في واجهة مستخدم النظام كالمعتاد، ما لم يحدّد المستخدم غير ذلك.
تتوفّر ثلاثة مستويات في وضع "عدم الإزعاج":
- عدم الإزعاج مطلقًا: يحظر جميع الأصوات والاهتزازات، بما في ذلك المنبّهات والموسيقى والفيديوهات والألعاب.
- المنبّهات فقط: يحظر هذا الخيار جميع الأصوات والاهتزازات، باستثناء المنبّهات.
- الأولوية فقط: يمكن للمستخدمين ضبط الفئات على مستوى النظام التي يمكنها مقاطعتهم، مثل المنبهات أو التذكيرات أو الأحداث أو المكالمات أو الرسائل فقط. بالنسبة إلى الرسائل والمكالمات، يمكن للمستخدمين الفلترة حسب المُرسِل أو المتصل، كما هو موضّح في الشكل 13.
على الإصدار 8.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 26) والإصدارات الأحدث، يمكن للمستخدمين أيضًا السماح بالإشعارات من خلال الفئات الخاصة بالتطبيقات، والمعروفة أيضًا باسم القنوات، من خلال إلغاء ميزة "عدم الإزعاج" لكل قناة على حدة. على سبيل المثال، قد يتضمّن تطبيق الدفع قنوات للإشعارات المتعلّقة بعمليات السحب والإيداع. يمكن للمستخدم السماح بإشعارات السحب أو إشعارات الإيداع أو كليهما في وضع الأولوية.
على الأجهزة التي تعمل بنظام التشغيل Android 7.1 (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للمستخدمين السماح بالإشعارات لكل تطبيق على حدة، بدلاً من كل قناة على حدة.
لضبط الإشعارات لإعدادات المستخدم هذه، يجب ضبط فئة على مستوى النظام.
إشعارات الخدمات التي تعمل في المقدّمة
يجب إرسال إشعار عندما يشغّل تطبيقك خدمة تعمل في المقدّمة، وهي Service تعمل في الخلفية لفترة طويلة ويلاحظها المستخدم، مثل مشغّل الوسائط. لا يمكن إغلاق هذا الإشعار مثل الإشعارات الأخرى. لإزالة الإشعار، يجب إيقاف الخدمة أو إزالتها من حالة المقدّمة.
لمزيد من المعلومات، يُرجى الاطّلاع على الخدمات التي تعمل في المقدّمة. إذا كنت بصدد إنشاء مشغّل وسائط، يُرجى أيضًا قراءة تشغيل الوسائط في الخلفية.
طريقة عمل الإشعارات
الإصدار 16.0 من نظام التشغيل Android، المستوى 36 لواجهة برمجة التطبيقات
يتم الآن تجميع الإشعارات تلقائيًا نيابةً عن التطبيق.
يتم تجميع الإشعارات التالية تلقائيًا:
- الإشعارات التي لا تتضمّن ملخّصًا
- الإشعارات بدون الإشعارات الفرعية
- الإشعارات التي تتضمّن إشعارًا فرعيًا واحدًا أو عددًا قليلاً من الإشعارات الفرعية
Android 15.0، مستوى واجهة برمجة التطبيقات 35
تخفيض الإشعارات الصوتية والاهتزاز
يقدّم Android 15 ميزة "تخفيض الإشعارات الصوتية والاهتزاز" التي تهدف إلى تحسين تجربة الإشعارات التي تصل بشكل متتالٍ وسريع. تعمل هذه الميزة على تقليل ظهور الإشعارات المتكررة ومستوى صوتها وشدة اهتزازها لمدة تصل إلى دقيقتين.
لا تخضع الإشعارات المهمة جدًا التي تتطلّب الصوت وتقنية اللمس لجذب الانتباه إلى فترة التهدئة. يمكن للمستخدم إيقاف ميزة "تخفيض الإشعارات الصوتية والاهتزاز" في "الإعدادات".