Benachrichtigungskennzeichen ändern

Ab Android 8.0 (API-Level 26) werden Benachrichtigungskennzeichen, App-Benachrichtigungspunkte erscheinen auf einem Launcher-Symbol, wenn die verknüpfte App aktive Benachrichtigung. Nutzer können Touch- & App-Symbol gedrückt halten, um die Benachrichtigungen sowie eventuelle App-Verknüpfungen, wie in Abbildung 1.

Diese Punkte erscheinen standardmäßig in Launcher-Apps, die sie unterstützen. nichts weiter tun muss. Es kann jedoch Situationen geben, in denen Sie der App-Benachrichtigungspunkt nicht angezeigt werden soll oder welche Benachrichtigungen dort erscheinen.

Abbildung 1: Benachrichtigungskennzeichen und die Menü „Gedrückt halten“.

Kennzeichen deaktivieren

Es gibt Fälle, in denen Kennzeichen für Ihre Benachrichtigungen nicht sinnvoll sind, sodass Sie können sie für einzelne Kanäle deaktivieren. Rufen Sie dazu setShowBadge(false) auf deinem NotificationChannel -Objekt enthält.

Beispielsweise können Sie Benachrichtigungskennzeichen in den folgenden Bereichen deaktivieren: Situationen:

  • Laufende Benachrichtigungen: Die meisten fortlaufenden Benachrichtigungen, z. B. zur Bildverarbeitung, die Steuerung der Medienwiedergabe oder die aktuellen Navigationsanweisungen als Badge.
  • Kalendererinnerungen: Vermeiden Sie mit Kennzeichen versehene Termine, die zur aktuellen Uhrzeit stattfinden.
  • Uhr- oder Weckerereignisse: Vermeiden Sie Kennzeichenbenachrichtigungen im Zusammenhang mit aktuellen Weckern.

Der folgende Beispielcode zeigt, wie Badges für eines Benachrichtigungskanals:

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);

Benutzerdefinierte Benachrichtigungsanzahl festlegen

Standardmäßig erhöht sich bei jeder Benachrichtigung eine Zahl, die auf dem Touchscreen und Hold wie in Abbildung 1 gezeigt, aber Sie können diese Zahl für Ihre App überschreiben. Dies kann beispielsweise nützlich sein, wenn Sie nur eine Benachrichtigung mehrere neue Nachrichten darstellen, wobei die Anzahl die Gesamtzahl der neuen Nachrichten

Zum Festlegen einer benutzerdefinierten Nummer wählen Sie setNumber() in die Benachrichtigung ein, wie hier gezeigt:

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();

Touch- und Bedienelemente einer Benachrichtigung ändern Symbol „Menü halten“

Die Touch- und zeigt das große oder kleine Symbol eines Benachrichtigung erhalten, falls verfügbar. Standardmäßig zeigt das System das große Symbol an, aber kannst du anrufen Notification.Builder.setBadgeIconType() und übergeben Sie die BADGE_ICON_SMALL konstant, um das kleine Symbol anzuzeigen.

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();

Doppelte Verknüpfungen ausblenden

Wenn Ihre App eine Benachrichtigung erstellt, die besagt, dass eine App-Verknüpfung dupliziert wurde, haben Sie folgende Möglichkeiten: Sie können die Verknüpfung vorübergehend ausblenden, während die Benachrichtigung aktiv ist. Rufen Sie dazu setShortcutId()

Weiteren Beispielcode, der Benachrichtigungen verwendet, finden Sie unter Personen-Beispiel.