Sửa đổi huy hiệu thông báo

Kể từ Android 8.0 (API cấp 26), huy hiệu thông báo (còn gọi là dấu chấm thông báo—xuất hiện trên biểu tượng trình chạy khi ứng dụng được liên kết có thông báo đang hoạt động. Người dùng có thể chạm & giữ biểu tượng ứng dụng để hiển thị thông báo, cùng với lối tắt ứng dụng, như minh hoạ trong hình 1.

Những dấu chấm này xuất hiện theo mặc định trong các ứng dụng trình chạy có hỗ trợ chúng. ứng dụng của bạn không cần làm gì. Tuy nhiên, có thể có những tình huống mà bạn không muốn dấu chấm thông báo xuất hiện hoặc bạn muốn kiểm soát chính xác thông báo nào sẽ xuất hiện ở đó.

Hình 1. Huy hiệu thông báo và thao tác chạm và giữ trình đơn.

Tắt huy hiệu

Có những trường hợp huy hiệu không phù hợp với thông báo của bạn. Vì vậy, bạn có thể tắt chúng theo từng kênh bằng cách gọi setShowBadge(false) trên NotificationChannel của bạn .

Ví dụ: bạn có thể muốn tắt huy hiệu thông báo trong phần sau trường hợp:

  • Thông báo hiển thị liên tục: hầu hết các thông báo hiển thị liên tục, chẳng hạn như xử lý hình ảnh, bộ điều khiển chế độ phát nội dung nghe nhìn hoặc hướng dẫn điều hướng hiện tại là không hợp lý làm huy hiệu.
  • Lời nhắc trên lịch: tránh các sự kiện liên quan đến huy hiệu xảy ra vào thời gian hiện tại.
  • Sự kiện đồng hồ hoặc chuông báo: tránh thông báo huy hiệu liên quan đến chuông báo hiện tại.

Mã mẫu sau đây minh hoạ cách ẩn huy hiệu cho kênh thông báo:

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);

Đặt số lượng thông báo tuỳ chỉnh

Theo mặc định, mỗi thông báo tăng một số được hiển thị khi chạm và giữ , như được minh họa trong hình 1, nhưng bạn có thể ghi đè số này cho ứng dụng của mình. Ví dụ: tính năng này có thể hữu ích nếu bạn chỉ sử dụng một thông báo để thể hiện nhiều thông điệp mới, nhưng muốn số lượng thể hiện số lượng tổng số tin nhắn mới.

Để đặt số tuỳ chỉnh, hãy gọi setNumber() trên thông báo, như minh hoạ dưới đây:

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();

Sửa đổi thao tác chạm vào thông báo & biểu tượng giữ trình đơn

Tiếp xúc và Hiển thị biểu tượng lớn hoặc nhỏ liên kết với nếu có. Theo mặc định, hệ thống hiển thị biểu tượng lớn, nhưng bạn có thể gọi Notification.Builder.setBadgeIconType() và truyền BADGE_ICON_SMALL hằng số để hiển thị biểu tượng nhỏ.

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();

Ẩn lối tắt trùng lặp

Nếu ứng dụng của bạn tạo một thông báo trùng lặp với một lối tắt ứng dụng, thì bạn có thể tạm thời ẩn lối tắt bằng cách gọi điện khi thông báo đang hoạt động setShortcutId().

Để biết thêm mã mẫu có sử dụng thông báo, hãy xem Mẫu Mọi người.