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

החל מ-Android 8.0 (רמת 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().

לקבלת קוד לדוגמה נוסף שמשתמש בהתראות, ראו דוגמת אנשים.