Android 8.0 (API düzeyi 26) sürümünden başlayarak, ilişkilendirilmiş uygulama etkin bir bildirime sahip olduğunda başlatıcı simgesinde bildirim noktaları olarak da bilinen bildirim rozetleri görünür. Kullanıcılar, uygulama simgesine dokunup basılı tutarak bildirimleri ve uygulama kısayollarını (Şekil 1'de gösterildiği gibi) görebilirler.
Bu noktalar, destekleyen başlatıcı uygulamalarında varsayılan olarak görünür ve uygulamanızın yapması gereken bir şey yoktur. Ancak bildirim noktasının görünmesini istemediğiniz veya tam olarak hangi bildirimlerin burada görüneceğini kontrol etmek istediğiniz durumlar olabilir.
Rozeti devre dışı bırak
Bildirimleriniz için rozetlerin kullanılmadığı durumlar olabilir. Bu nedenle, NotificationChannel
nesnenizde setShowBadge(false)
yöntemini çağırarak bunları kanal bazında devre dışı bırakabilirsiniz.
Örneğin, aşağıdaki durumlarda bildirim rozetlerini devre dışı bırakmak isteyebilirsiniz:
- Devam eden bildirimler: Resim işleme, medya oynatma kontrolleri veya mevcut gezinme talimatları gibi devam eden bildirimlerin çoğu rozet olarak anlamlı değildir.
- Takvim hatırlatıcıları: Mevcut zamanda gerçekleşen rozet etkinliklerinden kaçının.
- Saat veya alarm etkinlikleri: Mevcut alarmlarla ilgili rozet bildirimleri göndermekten kaçının.
Aşağıdaki örnek kod, bir bildirim kanalı için rozetlerin nasıl gizleneceğini gösterir:
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);
Özel bildirim sayısını ayarlama
Varsayılan olarak, her bildirim, Şekil 1'de gösterildiği gibi, dokunup basılı tut menüsünde görüntülenen bir sayıyı artırır ancak bu sayıyı uygulamanız için geçersiz kılabilirsiniz. Örneğin, birden çok yeni mesajı temsil etmek için tek bir bildirim kullanıyor ancak sayının toplam yeni mesaj sayısını temsil etmesini istiyorsanız bu yararlı olabilir.
Özel bir numara ayarlamak için bildirim üzerinden setNumber()
numaralı telefonu arayın (aşağıda gösterildiği gibi):
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();
Bildirimin dokunup basılı tutma menü simgesini değiştirme
Dokunup basılı tutma menüsünde, varsa bildirimle ilişkili büyük veya küçük simge görüntülenir. Varsayılan olarak, sistem büyük simgeyi görüntüler, ancak Notification.Builder.setBadgeIconType()
değerini çağırabilir ve küçük simgeyi görüntülemek için BADGE_ICON_SMALL
sabit değerini geçirebilirsiniz.
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();
Yinelenen bir kısayolu gizleme
Uygulamanız bir uygulama kısayolunu kopyalayan bir bildirim oluşturursa bildirim etkinken setShortcutId()
kodunu çağırarak kısayolu geçici olarak gizleyebilirsiniz.
Bildirimleri kullanan daha fazla örnek kod için Kişiler örneği bölümüne bakın.