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

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

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

أدلة التنفيذ

توضّح الأدلة التالية كيفية تنفيذ ميزات الإشعارات المختلفة في تطبيقك:

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

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

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

طريقة عمل الإشعارات على الأجهزة المختلفة

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

شريط الحالة ودرج الإشعارات

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

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

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

الشكل 2: الإشعارات في درج الإشعارات

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

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

تنبيه

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

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

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

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

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

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

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

شاشة القفل

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

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

يمكن للمستخدمين استخدام إعدادات النظام لاختيار مستوى التفاصيل المرئية في إشعارات شاشة القفل أو إيقاف جميع إشعارات شاشة القفل. بدءًا من 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: إشعار يتضمّن أزرار إجراءات

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

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

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

يتطلب جهازًا غير مقفل

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

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

لطلب فتح قفل الجهاز قبل أن يستدعي تطبيقك إجراء إشعار معيّنًا، مرِّر true إلى setAuthenticationRequired() عند إنشاء إجراء الإشعار، كما هو موضّح في مقتطف الرمز البرمجي التالي:

  val moreSecureNotification = Notification.Action.Builder(...)

      // This notification always requests authentication when invoked
      // from a lock screen.
      .setAuthenticationRequired(true)
      .build()

إشعار قابل للتوسيع

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

يستخدم Android أهمية الإشعار لتحديد مدى مقاطعة الإشعار للمستخدم مرئيًا وسمعيًا. كلما زادت أهمية الإشعار، زادت مقاطعته للمستخدم.

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

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

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

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

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

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

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

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

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

لمزيد من المعلومات، يُرجى قراءة مقالة كيفية ضبط الأهمية.

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

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

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

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

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

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

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

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

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

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

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

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

الإصدار 16.0 من Android، مستوى واجهة برمجة التطبيقات 36

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

يتم تجميع الإشعارات التالية تلقائيًا:

  • الإشعارات بدون ملخّص
  • الإشعارات بدون إشعارات فرعية
  • الإشعارات التي تتضمّن إشعارات فرعية قليلة أو واحدة فقط

الإصدار 15.0 من Android، مستوى واجهة برمجة التطبيقات 35

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

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

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

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

في ما يلي مثال على كيفية العثور على إعدادات ميزة "تخفيض الإشعارات الصوتية والاهتزاز":

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