แก้ไขป้ายการแจ้งเตือน

ป้ายการแจ้งเตือนหรือที่เรียกว่าป้ายการแจ้งเตือนหรือที่เรียกว่า Android 8.0 (API ระดับ 26) เครื่องหมายจุดแสดงการแจ้งเตือน - ปรากฏบนไอคอน Launcher เมื่อแอปที่เชื่อมโยงมี การแจ้งเตือนที่ใช้งานอยู่ ผู้ใช้สามารถ แตะและ ค้างไว้ที่ไอคอนแอปเพื่อดูการแจ้งเตือน รวมถึง ทางลัดของแอป ดังที่แสดงใน รูปที่ 1

จุดเหล่านี้จะปรากฏในแอป Launcher ที่รองรับจุดเหล่านี้โดยค่าเริ่มต้น และจะมี คุณไม่ต้องดำเนินการใดๆ แต่อาจมีบางสถานการณ์ที่คุณ ไม่ต้องการให้เครื่องหมายจุดแสดงการแจ้งเตือนปรากฏขึ้น หรือคุณต้องการควบคุม ว่ามีการแจ้งเตือนใดบ้าง

รูปที่ 1 ป้ายการแจ้งเตือนและการแตะและ เมนูค้างไว้

ปิดใช้การติดป้าย

มีบางกรณีที่ป้ายไม่เหมาะกับการแจ้งเตือนของคุณ คุณจึง สามารถปิดใช้สำหรับแต่ละช่องทางได้โดยการโทร setShowBadge(false) ใน NotificationChannel ออบเจ็กต์

เช่น คุณอาจต้องการปิดใช้ป้ายการแจ้งเตือนในกรณีต่อไปนี้ สถานการณ์:

  • การแจ้งเตือนต่อเนื่อง: การแจ้งเตือนที่ต่อเนื่องส่วนใหญ่ เช่น การประมวลผลรูปภาพ ตัวควบคุมการเล่นสื่อหรือคำแนะนำการนำทางปัจจุบันไม่สมเหตุสมผล เป็นป้าย
  • การช่วยเตือนในปฏิทิน: หลีกเลี่ยงการติดป้ายกิจกรรมที่เกิดขึ้นในเวลาปัจจุบัน
  • เหตุการณ์เกี่ยวกับนาฬิกาหรือการปลุก: หลีกเลี่ยงการติดป้ายการแจ้งเตือนที่เกี่ยวข้องกับการปลุกปัจจุบัน

โค้ดตัวอย่างต่อไปนี้แสดงวิธีซ่อนป้ายสำหรับ ช่องทางการแจ้งเตือน:

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

กำหนดจำนวนการแจ้งเตือนที่กำหนดเอง

โดยค่าเริ่มต้น การแจ้งเตือนแต่ละครั้งจะเพิ่มตัวเลขที่แสดงเมื่อมีการแตะและ กดค้าง ดังแสดงในรูปที่ 1 แต่คุณสามารถลบล้างตัวเลขนี้สำหรับแอปได้ ตัวอย่างเช่น วิธีนี้อาจเป็นประโยชน์หากคุณใช้การแจ้งเตือนเพียง 1 รายการเพื่อ แสดงข้อความใหม่หลายข้อความ แต่ต้องการให้จำนวนดังกล่าวแสดงถึง จำนวนข้อความใหม่ทั้งหมด

หากต้องการกำหนดหมายเลขที่กำหนดเอง โปรดโทร setNumber() ในการแจ้งเตือนดังที่แสดงด้านล่างนี้

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

แก้ไขการแตะและ ไอคอนเมนูค้างไว้

การแตะและ เมนูการระงับจะแสดงไอคอนขนาดใหญ่หรือเล็กที่เชื่อมโยงกับ การแจ้งเตือน (หากมี) โดยค่าเริ่มต้น ระบบจะแสดงไอคอนขนาดใหญ่ แต่ เธอโทรหา Notification.Builder.setBadgeIconType() และผ่านในBADGE_ICON_SMALL เพื่อแสดงไอคอนขนาดเล็กอยู่เสมอ

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

ซ่อนทางลัดที่ซ้ำกัน

หากแอปของคุณสร้างการแจ้งเตือนที่มีทางลัดของแอปซ้ำ คุณจะทําสิ่งต่อไปนี้ได้ ซ่อนทางลัดไว้ชั่วคราวขณะที่การแจ้งเตือนทำงานอยู่ด้วยการโทร setShortcutId()

สำหรับโค้ดตัวอย่างเพิ่มเติมที่ใช้การแจ้งเตือน โปรดดูตัวอย่างบุคคล