تعديل شارة إشعار

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

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

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

إيقاف وضع الشارات

في بعض الحالات، لا تكون الشارات مفيدة لإشعاراتك، لذا يمكنك إيقافها حسب كل قناة من خلال طلب الرمز setShowBadge(false) على عنصر NotificationChannel.

على سبيل المثال، يمكنك إيقاف شارات الإشعارات في الحالات التالية:

  • الإشعارات المستمرة: معظم الإشعارات الجارية، مثل معالجة الصور أو عناصر التحكم في تشغيل الوسائط أو تعليمات التنقل الحالية، لا تحمل معنى كشارة.
  • تذكيرات "تقويم Google": تجنَّب وضع شارات على الأحداث التي تقع في الوقت الحالي.
  • أحداث الساعة أو المنبّهات: تجنَّب عرض إشعارات الشارات ذات الصلة بالمنبهات الحالية.

يوضّح الرمز النموذجي التالي كيفية إخفاء الشارات لقناة إشعارات:

Kotlin

val id = "my_channel_01"
val name = getString(R.string.channel_name)
val descriptionText = getString(R.string.channel_description)
val importance = NotificationManager.IMPORTANCE_LOW
val mChannel = NotificationChannel(id, name, importance).apply {
    description = descriptionText
    setShowBadge(false)
}
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(mChannel)

Java

String id = "my_channel_01";
CharSequence name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
mChannel.setShowBadge(false);

NotificationManager notificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(mChannel);

ضبط عدد الإشعارات المخصّصة

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

لضبط رقم مخصّص، اتّصِل بـ setNumber() على الإشعار، كما هو موضّح هنا:

Kotlin

var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setNumber(messageCount)
        .build()

Java

Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setNumber(messageCount)
        .build();

تعديل رمز قائمة "النقر مع الاستمرار " في أحد الإشعارات

تعرض قائمة "النقر مع الاستمرار" الرمز الكبير أو الصغير المرتبط بإشعار في حال توفّره. يعرض النظام تلقائيًا الرمز الكبير، ولكن يمكنك استدعاء Notification.Builder.setBadgeIconType() وتمرير BADGE_ICON_SMALL لعرض الرمز الصغير.

Kotlin

var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
        .build()

Java

Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
        .build();

إخفاء اختصار مكرّر

إذا أنشأ تطبيقك إشعارًا يكرّر أحد اختصارات التطبيقات، يمكنك إخفاء الاختصار مؤقتًا عندما يكون الإشعار نشطًا عن طريق الاتصال بـ setShortcutId().

لمزيد من نماذج الرمز الذي يستخدم الإشعارات، يمكنك الاطّلاع على نموذج "الأشخاص".