بدءًا من الإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات)، تُعرف شارات الإشعارات أيضًا باسم نقاط الإشعارات: تظهر على رمز مشغّل التطبيقات عندما يشتمل التطبيق المرتبط على إشعار نشط. يمكن للمستخدمين لمس & أيقونة التطبيق للكشف عن الإشعارات، إلى جانب أي اختصارات التطبيقات، كما هو موضح في الشكل 1.
وتظهر هذه النقاط بشكل افتراضي في تطبيقات المشغّل التي تتوافق معها، لا يحتاج تطبيقك إلى اتخاذ أي إجراء. ومع ذلك، قد تكون هناك مواقف لا تريد أن تظهر نقطة الإشعار أو تريد التحكم بالضبط الإشعارات التي تظهر هناك.
الشكل 1. شارات الإشعارات واللمس القائمة المنسدلة.
إيقاف الشارات
هناك حالات لا تكون فيها الشارات منطقية لإشعاراتك، لذا
يمكنك إيقافها على أساس كل قناة من خلال استدعاء
setShowBadge(false)
على NotificationChannel
الخاص بك.
على سبيل المثال، قد ترغب في إيقاف شارات الإشعارات في ما يلي الحالات:
- الإشعارات المستمرة: تشمل معظم الإشعارات المستمرة، مثل معالجة الصور، أو عناصر التحكم في تشغيل الوسائط أو إرشادات التنقل الحالية، لا معنى كشارة.
- تذكيرات التقويم: تجنَّب وضع شارات على الأحداث التي تقع في الوقت الحالي.
- أحداث الساعة أو المنبّه: تجنَّب وضع شارات على الإشعارات المتعلّقة بالمنبّهات الحالية.
يوضح الرمز النموذجي التالي كيفية إخفاء شارات قناة إشعارات:
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()
لمزيد من نموذج الرمز الذي يستخدم الإشعارات، يُرجى الاطّلاع على نموذج "الأشخاص".