Mulai Android 8.0 (API level 26), badge notifikasi—yang juga disebut sebagai titik notifikasi—muncul pada ikon peluncur saat aplikasi terkait memiliki notifikasi aktif. Pengguna dapat menyentuh lama ikon aplikasi untuk menampilkan notifikasi, beserta pintasan aplikasi apa 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 saat Anda tidak ingin titik notifikasi muncul atau Anda ingin mengontrol dengan tepat notifikasi mana yang muncul di sana.
Menonaktifkan pemberian badge
Ada kasus saat badge tidak relevan untuk notifikasi, jadi Anda
dapat menonaktifkannya per saluran dengan memanggil
setShowBadge(false)
pada objek
NotificationChannel
.
Misalnya, Anda mungkin ingin menonaktifkan badge notifikasi dalam situasi berikut:
- Notifikasi berkelanjutan: sebagian besar notifikasi yang sedang berlangsung, seperti pemrosesan gambar, kontrol pemutaran media, atau petunjuk navigasi saat ini, tidak relevan sebagai badge.
- Pengingat kalender: hindari pemberian badge pada acara yang terjadi saat ini.
- Peristiwa jam atau alarm: hindari memberi badge pada notifikasi yang terkait dengan alarm saat ini.
Kode contoh berikut menunjukkan 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 menambahkan angka yang ditampilkan pada menu sentuh lama, seperti yang ditunjukkan pada gambar 1, tetapi Anda dapat mengganti angka ini untuk aplikasi Anda. Misalnya, hal ini mungkin berguna jika Anda hanya menggunakan satu notifikasi untuk mewakili beberapa pesan baru, tetapi ingin agar hitungan tersebut mewakili jumlah total pesan baru.
Untuk menetapkan nomor kustom, 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 sentuh lama notifikasi
Menu sentuh lama menampilkan ikon besar atau kecil yang terkait dengan
notifikasi jika tersedia. Secara default, sistem menampilkan ikon besar, tetapi
Anda dapat 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 membuat notifikasi yang menduplikasi pintasan aplikasi, Anda dapat
menyembunyikan pintasan untuk sementara saat notifikasi aktif dengan memanggil
setShortcutId()
.
Untuk mengetahui kode contoh lainnya yang menggunakan notifikasi, lihat Contoh orang.