Ab Android 8.0 (API-Ebene 26) werden Benachrichtigungskennzeichen (auch als Benachrichtigungspunkte bezeichnet) auf einem Launcher-Symbol angezeigt, wenn für die zugehörige App eine aktive Benachrichtigung vorhanden ist. Nutzer können das App-Symbol gedrückt halten, um die Benachrichtigungen und alle App-Verknüpfungen aufzurufen (siehe Abbildung 1).
Diese Punkte werden standardmäßig in Launcher-Apps angezeigt, die sie unterstützen. Ihre App muss nichts weiter tun. Es kann jedoch Situationen geben, in denen Sie nicht möchten, dass der Benachrichtigungspunkt angezeigt wird, oder Sie möchten genau festlegen, welche Benachrichtigungen dort angezeigt werden.
Kennzeichnungen deaktivieren
In einigen Fällen sind Badges für Ihre Benachrichtigungen nicht sinnvoll. Sie können sie dann kanalweise deaktivieren, indem Sie setShowBadge(false)
auf Ihrem NotificationChannel
-Objekt aufrufen.
Sie können Benachrichtigungssymbole beispielsweise in den folgenden Fällen deaktivieren:
- Laufende Benachrichtigungen: Die meisten laufenden Benachrichtigungen, z. B. zur Bildverarbeitung, zur Medienwiedergabe oder zur aktuellen Navigationsanleitung, sind als Symbol nicht sinnvoll.
- Kalendererinnerungen: Vermeiden Sie, dass Badges für Ereignisse angezeigt werden, die gerade stattfinden.
- Uhren- oder Weckerereignisse: Es werden keine Benachrichtigungen mit Symbolen zu aktuellen Weckern angezeigt.
Im folgenden Codebeispiel wird gezeigt, wie Sie Badges für einen Benachrichtigungskanal ausblenden:
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);
Anzahl der benutzerdefinierten Benachrichtigungen festlegen
Standardmäßig wird bei jeder Benachrichtigung die Zahl im Menü „Bei Berühren halten“ erhöht (siehe Abbildung 1). Sie können diese Zahl für Ihre App jedoch überschreiben. Das kann beispielsweise nützlich sein, wenn Sie nur eine Benachrichtigung für mehrere neue Nachrichten verwenden, die Anzahl aber die Gesamtzahl der neuen Nachrichten darstellen soll.
Wenn Sie eine benutzerdefinierte Nummer festlegen möchten, rufen Sie setNumber()
in der Benachrichtigung 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();
Symbol für das Menü „Gedrückt halten“ einer Benachrichtigung ändern
Im Menü, das durch Drücken und Halten geöffnet wird, wird das große oder kleine Symbol angezeigt, das mit einer Benachrichtigung verknüpft ist, sofern verfügbar. Standardmäßig wird das große Symbol angezeigt. Sie können jedoch Notification.Builder.setBadgeIconType()
aufrufen und die Konstante BADGE_ICON_SMALL
übergeben, 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üpfung ausblenden
Wenn Ihre App eine Benachrichtigung erstellt, die einen App-Verknüpfung dupliziert, können Sie die Verknüpfung vorübergehend ausblenden, während die Benachrichtigung aktiv ist. Drücken Sie dazu setShortcutId()
.
Weitere Codebeispiele mit Benachrichtigungen finden Sie in der Beispiel-App „SociaLite“.