A partire da Android 8.0 (livello API 26), i badge di notifica, noti anche come indicatori di notifica: vengono visualizzati su un'icona in Avvio applicazioni quando l'app associata dispone di notifica attiva. Gli utenti possono tocca e tieni premuta l'icona dell'app per mostrare le notifiche, insieme a scorciatoie app, come mostrato in figura 1.
Questi puntini vengono visualizzati per impostazione predefinita nelle app Avvio app che li supportano non deve fare nulla la tua app. Tuttavia, potrebbero verificarsi situazioni in cui non vuoi che appaia l'indicatore di notifica o vuoi controllare esattamente le notifiche visualizzate.
Figura 1. Badge di notifica e i pulsanti touch e tieni premuto il menu.
Disattiva badge
In alcuni casi i badge non hanno senso per le notifiche, pertanto
puoi disattivarle a seconda del canale richiamando
setShowBadge(false)
sul tuo NotificationChannel
.
Ad esempio, potresti voler disattivare i badge di notifica nel seguente situazioni seguenti:
- Notifiche continue: per la maggior parte delle notifiche continue, come l'elaborazione di immagini, i controlli di riproduzione dei contenuti multimediali o le istruzioni di navigazione correnti non hanno senso come badge.
- Promemoria del calendario: evita di aggiungere badge a eventi che si verificano nell'ora corrente.
- Eventi di orologio o sveglia: evita di aggiungere badge alle notifiche relative alle sveglie correnti.
Il seguente codice di esempio mostra come nascondere i badge per un canale di notifica:
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);
Imposta un numero di notifiche personalizzato
Per impostazione predefinita, ogni notifica incrementa un numero visualizzato con il tocco e tieni premuto come mostrato nella Figura 1, ma puoi sostituire questo numero per la tua app. Ad esempio, ciò potrebbe essere utile se utilizzi una sola notifica per rappresentano più nuovi messaggi, ma vuoi che il conteggio rappresenti numero totale di nuovi messaggi.
Per impostare un numero personalizzato, chiama
setNumber()
sulla notifica, come mostrato qui:
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();
Modificare il tocco e icona menu tieni premuto
Il tocco e menu di blocco mostra l'icona grande o piccola associata a un
se disponibile. Per impostazione predefinita, viene visualizzata l'icona grande, ma
puoi chiamare
Notification.Builder.setBadgeIconType()
e superare la BADGE_ICON_SMALL
costante per visualizzare la piccola icona.
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();
Nascondere una scorciatoia duplicata
Se la tua app crea una notifica che duplica una scorciatoia dell'app, puoi:
nascondi temporaneamente la scorciatoia mentre la notifica è attiva chiamando
setShortcutId()
Per altri esempi di codice che utilizzano le notifiche, vedi l'esempio di persone.