שינוי של תג התראה

החל מגרסה 8.0 של Android‏ (רמת API 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() כדי להסתיר את קיצור הדרך באופן זמני בזמן שההתראה פעילה.

דוגמאות נוספות לקוד שמשתמש בהתראות זמינות באפליקציית הדוגמה SociaLite.