Android 8.0 (API düzeyi 26) sürümünden itibaren, ilişkili uygulamada etkin bir bildirim olduğunda başlatıcı simgesinde bildirim rozetleri (bildirim noktaları olarak da bilinir) görünür. Kullanıcılar, uygulama simgesine dokunup basılı tutarak bildirimleri ve uygulama kısayollarını görebilir (Şekil 1).
Bu noktalar, destekleyen başlatıcı uygulamalarında varsayılan olarak görünür ve uygulamanızın herhangi bir işlem yapması gerekmez. Ancak bildirim noktasının görünmesini istemediğiniz veya tam olarak hangi bildirimlerin görüneceğini kontrol etmek istediğiniz durumlar olabilir.
Rozetleri devre dışı bırakma
Bildirimleriniz için rozetleri devre dışı bırakmak isteyebilirsiniz. Bu durumda, NotificationChannel
nesnesinde setShowBadge(false)
metodunu çağırarak rozetleri kanal bazında devre dışı bırakabilirsiniz.
Örneğin, aşağıdaki durumlarda bildirim rozetlerini devre dışı bırakmak isteyebilirsiniz:
- Devam eden bildirimler: Görüntü işleme, medya oynatma kontrolleri veya mevcut gezinme talimatları gibi devam eden bildirimlerin çoğu rozet olarak gösterilemez.
- Takvim hatırlatıcıları: Mevcut zamanda gerçekleşen etkinliklere rozet eklemekten kaçının.
- Saat veya alarm etkinlikleri: Mevcut alarmlarla ilgili rozet bildirimleri gösterilmez.
Aşağıdaki örnek kodda, bir bildirim kanalının rozetlerinin nasıl gizleneceği gösterilmektedir:
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ı tutma menüsünde görüntülenen bir sayıyı artırır ancak uygulamanız için bu sayıyı geçersiz kılabilirsiniz. Örneğin, birden fazla yeni mesajı temsil etmek için yalnızca bir bildirim kullanıyorsanız ancak sayının toplam yeni mesaj sayısını temsil etmesini istiyorsanız bu özellik yararlı olabilir.
Özel bir numara ayarlamak için bildirimde setNumber()
simgesini tıklayın:
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();
Bildirimlerin dokunup basılı tutma menüsü simgesini değiştirme
Dokunup basılı tutma menüsünde, varsa bildirimle ilişkili büyük veya küçük simge gösterilir. Sistem varsayılan olarak büyük simgeyi gösterir ancak küçük simgeyi görüntülemek için Notification.Builder.setBadgeIconType()
işlevini çağırıp BADGE_ICON_SMALL
sabit değerini iletebilirsiniz.
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 setShortcutId()
çağrısını yaparak bildirim etkinken kısayolu geçici olarak gizleyebilirsiniz.
Bildirimleri kullanan daha fazla örnek kod için SociaLite örnek uygulamasına bakın.