Benachrichtigungskennzeichen ändern

Ab Android 8.0 (API-Level 26) werden Benachrichtigungskennzeichen – auch Benachrichtigungspunkte genannt – auf einem Launcher-Symbol angezeigt, wenn für die verknüpfte App eine aktive Benachrichtigung vorliegt. Nutzer können das App-Symbol gedrückt halten, um die Benachrichtigungen und alle App-Verknüpfungen aufzurufen, wie in Abbildung 1 dargestellt.

Diese Punkte werden standardmäßig in Launcher-Apps angezeigt, die sie unterstützen. Ihre App muss nichts tun. Es kann jedoch Situationen geben, in denen der Punkt für Benachrichtigungen nicht angezeigt werden soll oder Sie genau steuern möchten, welche Benachrichtigungen dort angezeigt werden.

Abbildung 1: Benachrichtigungskennzeichen und das Menü "Berühren und halten"

Kennzeichen deaktivieren

Manchmal sind Badges für Benachrichtigungen nicht sinnvoll. Du kannst sie also für einzelne Kanäle deaktivieren, indem du setShowBadge(false) für dein NotificationChannel-Objekt aufrufst.

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

  • Laufende Benachrichtigungen: Die meisten aktuellen Benachrichtigungen, z. B. zur Bildverarbeitung, Steuerelemente für die Medienwiedergabe oder aktuelle Navigationsanweisungen, sind nicht als Symbol sinnvoll.
  • Kalendererinnerungen: Kennzeichen Sie Ereignisse, die zum aktuellen Zeitpunkt stattfinden.
  • Uhr- oder Wecker-Ereignisse: Kennzeichnet Benachrichtigungen zu aktuellen Alarmen nicht mit Kennzeichen.

Der folgende Beispielcode zeigt, wie Badges für einen Benachrichtigungskanal ausgeblendet werden:

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 Anzahl an Benachrichtigungen festlegen

Standardmäßig erhöht jede Benachrichtigung eine Zahl, die im Menü „Berühren und halten“ angezeigt wird (siehe Abbildung 1). Sie können diese Zahl jedoch für Ihre App überschreiben. Dies kann beispielsweise nützlich sein, wenn Sie nur eine Benachrichtigung verwenden, um mehrere neue Nachrichten darzustellen, aber die Anzahl der Gesamtzahl der neuen Nachrichten entsprechen soll.

Rufen Sie zum Festlegen einer benutzerdefinierten Nummer in der Benachrichtigung setNumber() auf, 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();

Menüsymbol „Berühren und halten“ einer Benachrichtigung ändern

Im Menü „Berühren und halten“ wird das große oder kleine Symbol für eine Benachrichtigung angezeigt, sofern verfügbar. Standardmäßig wird im System das große Symbol angezeigt. Sie können aber Notification.Builder.setBadgeIconType() aufrufen und die BADGE_ICON_SMALL-Konstante übergeben, damit das kleine Symbol angezeigt wird.

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üpfung ausblenden

Wenn Ihre App eine Benachrichtigung erstellt, die eine App-Verknüpfung dupliziert, können Sie die Verknüpfung vorübergehend ausblenden, während die Benachrichtigung aktiv ist. Rufen Sie dazu setShortcutId() auf.

Weiteren Beispielcode mit Benachrichtigungen finden Sie im People-Beispiel.