À partir d'Android 8.0 (niveau d'API 26), les badges de notification pastilles de notification : elles apparaissent sur une icône de lanceur lorsque l'application associée dispose d'une notification active. Les utilisateurs peuvent appuyer et appuyez de manière prolongée sur l'icône de l'application pour afficher les notifications, ainsi que les raccourcis d'application, comme indiqué dans figure 1.
Ces points apparaissent par défaut dans les applications de lanceur compatibles et il y a votre application n'a rien à faire. Cependant, il peut y avoir des situations dans lesquelles si vous ne voulez pas que la pastille de notification s'affiche ou si vous voulez contrôler quelles notifications s'y trouvent.
Désactiver les badges
Dans certains cas, les badges n'ont aucun sens pour vos notifications, vous
vous pouvez les désactiver pour chaque canal en appelant
setShowBadge(false)
sur votre NotificationChannel
.
Vous pouvez par exemple désactiver les badges de notification dans les situations suivantes:
- Notifications en cours: la plupart des notifications en cours, telles que le traitement d'image, les commandes de lecture multimédia ou les instructions de navigation actuelles n'ont aucun sens sous forme de badge.
- Rappels de l'agenda: évitez de marquer des événements à l'heure actuelle.
- Événements d'horloge ou d'alarme: évitez de recevoir des notifications par badge pour les alarmes en cours.
L'exemple de code suivant montre comment masquer les badges pour un canal de notification:
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);
Définir le nombre de notifications personnalisé
Par défaut, chaque notification incrémente un nombre affiché sur les écrans tactiles et appui long comme illustré dans la figure 1, mais vous pouvez remplacer ce numéro pour votre application. Cela peut être utile, par exemple, si vous n'utilisez qu'une seule notification plusieurs nouveaux messages, mais que vous souhaitez le nombre total de nouveaux messages.
Pour définir un numéro personnalisé, appelez
setNumber()
sur la notification, comme indiqué ci-dessous:
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();
Modifier l'appui sur une notification icône de menu de manière prolongée
Le toucher et affiche la grande ou la petite icône associée à
notification, le cas échéant. Par défaut, le système affiche la grande icône, mais
tu peux appeler
Notification.Builder.setBadgeIconType()
et transmettez BADGE_ICON_SMALL
pour afficher la petite icône.
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();
Masquer un raccourci en double
Si votre application crée une notification qui duplique un raccourci d'application, vous pouvez
masquer temporairement le raccourci lorsque la notification est active en appelant
setShortcutId()
Pour obtenir d'autres exemples de code utilisant des notifications, consultez l'exemple "People".