Bildirim rozetini değiştirme

Android 8.0 (API düzeyi 26) sürümünden itibaren, bildirim noktaları: İlişkili uygulamada bir etkin bildirim. Kullanıcılar şunları yapabilir: dokun ve bildirimleri ve diğer bildirimleri görmek için uygulama simgesini basılı tutun uygulama kısayollarını kullanma Şekil 1.

Bu noktalar, kendilerini destekleyen başlatıcı uygulamalarında varsayılan olarak görünür ve hiçbir şey yapması gerekmiyor. Ancak bazı durumlarda bildirim noktasının görünmesini istemiyor veya bunu tam olarak kontrol etmek istiyorsanız burada hangi bildirimlerin görüneceğini kontrol edebilirsiniz.

Şekil 1. Bildirim rozetleri ve dokunma & basılı tutma menüsünü kullanın.

Rozetleri devre dışı bırak

Rozetlerin bildirimleriniz için anlamlı olmadığı durumlar olabilir. telefon ederek kanal bazında devre dışı bırakabilir setShowBadge(false) NotificationChannel cihazınızda nesnesini tanımlayın.

Örneğin, aşağıdaki sürümlerde bildirim rozetlerini devre dışı bırakmak isteyebilirsiniz: durumlar:

  • Devam eden bildirimler: Resim işleme, medya oynatma kontrolleri veya mevcut gezinme talimatları mantıklı değil sahip olacaksınız.
  • Takvim hatırlatıcıları: Geçerli zamanda gerçekleşen rozetlerden kaçının.
  • Saat veya alarm etkinlikleri: Mevcut alarmlarla ilgili rozet bildirimlerinden kaçının.

Aşağıdaki örnek kod, bir bildirim kanalı:

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ı ayarlayın

Varsayılan olarak her bildirim, dokunulan ve & bekletme menüsü vardır, ancak uygulamanız için bu sayıyı geçersiz kılabilirsiniz. Örneğin, tek bir bildirim kullanıyorsanız bu özellik işinize yarayabilir birden çok yeni mesajı temsil eder ancak sayının Toplam yeni ileti sayısı

Özel bir numara ayarlamak için şu numarayı arayın: setNumber() bildirimde, burada 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();

Bir bildirimin dokunuşunu değiştir ve basılı tut menü simgesi

Dokunma ve Beklet menüsü, bir öğeyle ilişkili büyük veya küçük bildirimi alabilirsiniz. Varsayılan olarak sistemde büyük simge görüntülenir, telefon edebilirsin Notification.Builder.setBadgeIconType() ve BADGE_ICON_SMALL küçük simgeyi görüntüleyecek şekilde değiştirebilirsiniz.

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 kısayolu gizleme

Uygulamanız, bir uygulama kısayolunu yineleyen bir bildirim oluşturursa şunları yapabilirsiniz: Bildirim etkin durumdayken şunu arayarak kısayolu geçici olarak gizleyin: setShortcutId().

Bildirimleri kullanan daha fazla örnek kod için Kişiler örneğine bakın.