لمحة عن الإشعارات

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

تقدّم هذه الصفحة نظرة عامة على أماكن ظهور الإشعارات والميزات المتاحة. لبدء إنشاء الإشعارات، يُرجى قراءة مقالة إنشاء إشعار.

لمزيد من المعلومات حول تصميم الإشعارات وأنماط التفاعل، يُرجى الاطّلاع على دليل تصميم الإشعارات.

مرات الظهور على جهاز

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

شريط الحالة وقائمة الإشعارات

عند إصدار إشعار، يظهر أولاً كرمز في شريط الحالة.

الشكل 1. تظهر رموز الإشعارات على يمين شريط الحالة.

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

الشكل 2. الإشعارات في قائمة الإشعارات

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

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

تنبيه

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

الشكل 3. يظهر تنبيه في مقدّمة التطبيق الذي يعمل في المقدّمة.

يظهر التنبيه عندما يصدر تطبيقك الإشعار. يختفي الإشعار بعد لحظة، ولكن يظل مرئيًا في درج الإشعارات كالمعتاد.

تشمل الشروط التي قد تؤدي إلى ظهور إشعارات تنبيهية ما يلي:

  • يكون نشاط المستخدم في وضع ملء الشاشة، مثلاً عندما يستخدم التطبيق fullScreenIntent.

  • يتم ضبط أولوية الإشعار على "عالية" ويستخدم نغمات رنين أو اهتزازات على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم.

  • تتسم قناة الإشعارات بأهمية كبيرة على الأجهزة التي تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث.

شاشة القفل

بدءًا من الإصدار 5.0 من نظام التشغيل Android، يمكن أن تظهر الإشعارات على شاشة القفل.

يمكنك ضبط ما إذا كانت الإشعارات التي ينشرها تطبيقك ستظهر على شاشة قفل آمنة أم لا، ومستوى التفاصيل المرئية في حال ظهورها، وذلك بشكل آلي.

يمكن للمستخدمين استخدام إعدادات النظام لاختيار مستوى التفاصيل المرئية في إشعارات شاشة القفل أو لإيقاف جميع إشعارات شاشة القفل. بدءًا من نظام التشغيل Android 8.0، يمكن للمستخدمين إيقاف إشعارات شاشة القفل أو تفعيلها لكل قناة إشعار.

الشكل 4 الإشعارات على شاشة القفل مع إخفاء المحتوى الحسّاس

لمزيد من المعلومات، يُرجى الاطّلاع على ضبط إعدادات ظهور شاشة القفل.

شارة رمز التطبيق

في مشغّلات التطبيقات المتوافقة على الأجهزة التي تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، تشير رموز التطبيقات إلى الإشعارات الجديدة باستخدام شارة ملونة تُعرف باسم نقطة الإشعارات على رمز مشغّل التطبيق المعنيّ.

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

الشكل 5. شارات الإشعارات وقائمة النقر مع الاستمرار

لمزيد من المعلومات حول طريقة عمل الشارات، يُرجى قراءة مقالة تعديل شارة إشعار.

الأجهزة التي تعمل بنظام Wear OS

إذا كان لدى المستخدم جهاز Wear OS مقترن، ستظهر جميع إشعاراتك تلقائيًا على هذا الجهاز، بما في ذلك التفاصيل القابلة للتوسيع وأزرار الإجراءات.

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

الشكل 6. تظهر الإشعارات تلقائيًا على جهاز Wear OS مقترن.

بنية الإشعار

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

الشكل 7. إشعار يتضمّن التفاصيل الأساسية

يتم توضيح الأجزاء الأكثر شيوعًا في الإشعار في الشكل 7، كما يلي:

  1. الرمز الصغير: مطلوب، ويتم ضبطه باستخدام setSmallIcon().
  2. اسم التطبيق: يوفّره النظام.
  3. الطابع الزمني: يوفّره النظام، ولكن يمكنك إلغاؤه باستخدام setWhen() أو إخفاؤه باستخدام setShowWhen(false).
  4. الرمز الكبير: اختياري، ويُستخدم عادةً لصور جهات الاتصال فقط. لا تستخدِمها لرمز تطبيقك. اضبطها باستخدام setLargeIcon().
  5. العنوان: اختياري، يتم ضبطه باستخدام setContentTitle().
  6. النص: اختياري، يتم ضبطه باستخدام setContentText().

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

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

إجراءات الإشعارات

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

الشكل 8. إشعار يتضمّن أزرار إجراءات

بدءًا من الإصدار 7.0 من نظام التشغيل Android (المستوى 24 من واجهة برمجة التطبيقات)، يمكنك إضافة إجراء للردّ على الرسائل أو إدخال نص آخر مباشرةً من الإشعار.

بدءًا من نظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات)، يمكن للمنصة إنشاء أزرار إجراءات تلقائيًا تتضمّن إجراءات مقترَحة مستندة إلى الأهداف.

يتم توضيح كيفية إضافة أزرار الإجراءات بشكل أكبر في مقالة إنشاء إشعار.

يجب أن يكون الجهاز غير مقفل

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

في نظام التشغيل 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.

الشكل 9. إشعار قابل للتوسيع للنصوص الكبيرة

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

تعديلات الإشعارات ومجموعاتها

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

ومع ذلك، إذا كان من الضروري عرض إشعارات متعدّدة، ننصحك بتجميع الإشعارات المنفصلة في مجموعة واحدة متاحة على الإصدار 7.0 من نظام التشغيل Android والإصدارات الأحدث.

تتيح لك مجموعة الإشعارات تصغير إشعارات متعدّدة في منشور واحد في درج الإشعارات مع ملخّص. يمكن للمستخدم توسيع مجموعة الإشعارات وكل إشعار فيها بشكل تدريجي للحصول على مزيد من التفاصيل، كما هو موضّح في الشكل 10.

الشكل 10. مجموعة إشعارات مصغّرة وموسّعة

لمعرفة كيفية إضافة إشعارات إلى مجموعة، يُرجى الاطّلاع على إنشاء مجموعة من الإشعارات.

قنوات الإشعارات

اعتبارًا من الإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات)، يجب ربط جميع الإشعارات بقناة، وإلا لن تظهر. يتيح ذلك للمستخدمين إيقاف قنوات إشعارات محدّدة لتطبيقك بدلاً من إيقاف جميع إشعاراتك. يمكن للمستخدمين التحكّم في الخيارات المرئية والسمعية لكل قناة من إعدادات نظام Android، كما هو موضّح في الشكل 11. يمكن للمستخدمين أيضًا النقر مع الاستمرار على إشعار لتغيير سلوكيات القناة المرتبطة به.

على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للمستخدمين إدارة الإشعارات على أساس كل تطبيق على حدة فقط. لا يتوفّر لكل تطبيق سوى قناة واحدة على الإصدار 7.1 من نظام التشغيل Android والإصدارات الأقدم.

الشكل 11. إعدادات الإشعارات لتطبيق "الساعة" وإحدى قنواته

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

تُستخدَم القناة أيضًا لتحديد مستوى الأهمية للإشعارات على الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث، وبالتالي تتشابه جميع الإشعارات المنشورة في قناة الإشعارات نفسها في سلوكها. يتم توضيح ذلك في القسم التالي.

لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء قنوات الإشعارات وإدارتها.

أهمية الإشعارات

يستخدم نظام التشغيل Android أهمية الإشعار لتحديد مدى مقاطعة الإشعار للمستخدم بصريًا وسمعيًا. وكلما زادت أهمية الإشعار، زاد تأثيره في مقاطعة المستخدم.

في نظام التشغيل Android 7.1 (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يتم تحديد أهمية الإشعار من خلال priority الخاص به.

في نظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تحديد أهمية الإشعار من خلال importance للقناة التي يتم نشر الإشعار فيها. يمكن للمستخدمين تغيير أهمية قناة الإشعارات في إعدادات النظام، كما هو موضّح في الشكل 12.

الشكل 12: يمكن للمستخدمين تغيير مستوى أهمية كل قناة على الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث.

في ما يلي مستويات الأهمية المحتملة وسلوكيات الإشعارات المرتبطة بها:

  • عاجل: يصدر صوتًا ويظهر كإشعار بانر.

  • عالية: تصدر صوتًا.

  • متوسطة: لا تصدر أي صوت.

  • منخفض: لا يصدر أي صوت ولا يظهر في شريط الحالة.

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

لمزيد من المعلومات، اطّلِع على مقالة كيفية ضبط الأهمية.

وضع "عدم الإزعاج"

بدءًا من الإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات)، يمكن للمستخدمين تفعيل وضع "عدم الإزعاج"، الذي يكتم الصوت والاهتزاز لجميع الإشعارات. ستستمر الإشعارات في الظهور في واجهة مستخدم النظام كالمعتاد، ما لم يحدّد المستخدم خلاف ذلك.

تتوفّر ثلاثة مستويات في وضع "عدم الإزعاج":

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

الشكل 13. يمكن للمستخدمين السماح بتلقّي الإشعارات استنادًا إلى الفئات على مستوى النظام (على اليمين) والمرسِل أو المتصل (على اليسار).

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

على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (المستوى 25 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للمستخدمين السماح بتلقّي الإشعارات على أساس كل تطبيق على حدة، بدلاً من السماح بها على أساس كل قناة على حدة.

لضبط إشعاراتك لهذه الإعدادات، عليك تحديد فئة على مستوى النظام.

الإشعارات الخاصة بالخدمات التي تعمل في المقدّمة

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

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

طريقة عمل الإشعارات

تخفيض الإشعارات الصوتية والاهتزاز

‫Android 16.0، المستوى 36 لواجهة برمجة التطبيقات

يتم الآن تجميع الإشعارات تلقائيًا نيابةً عن التطبيق.

يتم تجميع الإشعارات التالية تلقائيًا: - الإشعارات التي لا تتضمّن ملخّصًا - الإشعارات التي لا تتضمّن إشعارات فرعية - الإشعارات التي تتضمّن إشعارات فرعية قليلة أو إشعارًا فرعيًا واحدًا

‫Android 15.0، المستوى 35 لواجهة برمجة التطبيقات

يقدّم نظام التشغيل Android 15 ميزة تهدئة الإشعارات التي تهدف إلى تحسين تجربة الإشعارات التي تصل تباعًا بسرعة. تتيح هذه الميزة تقليل ظهور الإشعارات المتكررة ومستوى صوتها وشدة اهتزازها لمدة تصل إلى دقيقتَين.

لا تخضع الإشعارات المهمة التي تتطلّب إصدار صوت واهتزاز لجذب الانتباه لفترة تهدئة. يمكن للمستخدم إيقاف فترة الانتظار بين الإشعارات في "الإعدادات".

الشكل 9. إعدادات "تخفيض الإشعارات الصوتية والاهتزاز"

في ما يلي مثال على كيفية العثور على إعدادات فترة الانتظار بين الإشعارات:

Kotlin

val intent = Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS)
val pendingIntent =
            PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)

Java

Intent intent = new Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS)
PendingIntent pendingIntent =
            PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)