Dimulai dengan 8.0 (API level 26), badge notifikasi (juga disebut sebagai titik notifikasi) muncul pada ikon peluncur saat aplikasi terkait memiliki notifikasi aktif. Pengguna bisa menekan lama ikon aplikasi untuk membuka notifikasi (di samping pintasan app mana pun), seperti yang ditunjukkan pada gambar 1.
Titik-titik ini muncul secara default di aplikasi peluncur yang mendukungnya dan tidak ada yang perlu dilakukan aplikasi Anda. Namun, mungkin ada situasi di mana Anda tidak ingin titik notifikasi ini muncul atau Anda ingin mengontrol notifikasi mana yang muncul di sana.
Gambar 1. Badge notifikasi dan menu tekan lama
Menonaktifkan pemberian badge
Ada saat di mana badge tidak relevan untuk notifikasi, jadi Anda bisa menonaktifkannya pada basis per saluran dengan memanggil setShowBadge(false)
pada objek NotificationChannel
Anda.
Misalnya, Anda mungkin ingin menonaktifkan badge notifikasi dalam situasi berikut:
- Notifikasi yang sedang berjalan: Sebagian besar notifikasi yang sedang berjalan, seperti pemrosesan gambar, kontrol pemutaran media, atau instruksi navigasi saat ini, tidak relevan sebagai badge.
- Pengingat kalender: Hindari pemberian badge di peristiwa yang terjadi saat ini.
- Peristiwa jam atau alarm: Hindari pemberian badge pada notifikasi yang berkaitan dengan alarm saat ini.
Kode contoh berikut menggambarkan cara menyembunyikan badge untuk saluran notifikasi:
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);
Menetapkan jumlah notifikasi khusus
Secara default, setiap notifikasi menambah jumlah yang ditampilkan pada menu tekan lama (terlihat pada gambar 1), tetapi Anda bisa mengganti jumlah ini untuk aplikasi Anda. Misalnya, hal ini mungkin berguna jika Anda hanya menggunakan satu notifikasi untuk mewakili beberapa pesan baru tetapi Anda ingin hitungan di sini mewakili jumlah total pesan baru.
Untuk menetapkan jumlah khusus, panggil setNumber()
pada notifikasi, seperti yang ditunjukkan di sini:
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();
Mengubah ikon menu tekan lama notifikasi
Menu tekan lama menampilkan ikon kecil atau besar yang berkaitan dengan suatu notifikasi jika tersedia. Secara default, sistem menampilkan ikon besar, tetapi Anda bisa memanggil Notification.Builder.setBadgeIconType()
dan meneruskan konstanta BADGE_ICON_SMALL
untuk menampilkan ikon kecil.
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();
Menyembunyikan pintasan duplikat
Jika aplikasi Anda membuat notifikasi yang menduplikasi pintasan app, Anda dapat menyembunyikan sementara pintasan tersebut saat notifikasi aktif dengan memanggil setShortcutId()
.
Untuk kode contoh lainnya yang menggunakan notifikasi, lihat Sampel Notifikasi Android.