ภาพรวมการแจ้งเตือน

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

หน้านี้แสดงภาพรวมของตำแหน่งที่การแจ้งเตือนปรากฏและฟีเจอร์ที่มีให้ใช้งาน หากต้องการเริ่มสร้างการแจ้งเตือน โปรดอ่านสร้างการแจ้งเตือน

ดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบการแจ้งเตือนและรูปแบบการโต้ตอบได้ที่คู่มือการออกแบบการแจ้งเตือน

ลักษณะที่ปรากฏในอุปกรณ์

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

แถบสถานะและลิ้นชักการแจ้งเตือน

เมื่อคุณส่งการแจ้งเตือน การแจ้งเตือนจะปรากฏเป็นไอคอนในแถบสถานะก่อน

รูปที่ 1 ไอคอนการแจ้งเตือนจะปรากฏขึ้นทางด้านซ้ายของแถบสถานะ

ผู้ใช้จะเลื่อนนิ้วลงบนแถบสถานะเพื่อเปิดลิ้นชักการแจ้งเตือนได้เพื่อดูรายละเอียดเพิ่มเติมและดำเนินการต่างๆ จากการแจ้งเตือน

รูปที่ 2 การแจ้งเตือนในลิ้นชักการแจ้งเตือน

ผู้ใช้ลากนิ้วลงบนการแจ้งเตือนในลิ้นชักเพื่อเปิดมุมมองแบบขยายซึ่งจะแสดงเนื้อหาเพิ่มเติมและปุ่มการทำงานในกรณีที่มีให้ใช้งาน ตั้งแต่ Android 13 เป็นต้นไป มุมมองแบบขยายจะมีปุ่มที่ช่วยให้ผู้ใช้หยุดแอปที่มีบริการที่ทำงานอยู่เบื้องหน้าได้

การแจ้งเตือนจะยังคงปรากฏให้เห็นในลิ้นชักการแจ้งเตือนจนกว่าแอปหรือผู้ใช้จะปิดไป

การแจ้งเตือนล่วงหน้า

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

รูปที่ 3 การแจ้งเตือนล่วงหน้าปรากฏขึ้นโดยวางซ้อนบนแอปที่ทำงานอยู่เบื้องหน้า

การแจ้งเตือนล่วงหน้าจะปรากฏขึ้นเมื่อแอปส่งการแจ้งเตือน แต่จะหายไปหลังจากผ่านไปครู่หนึ่ง แต่จะยังปรากฏให้เห็นในลิ้นชักการแจ้งเตือนตามปกติ

เงื่อนไขที่อาจเรียกให้การแจ้งเตือนล่วงหน้าแสดงขึ้นมีดังนี้

  • กิจกรรมของผู้ใช้อยู่ในโหมดเต็มหน้าจอ เช่น เมื่อแอปใช้ fullScreenIntent

  • การแจ้งเตือนมีลำดับความสำคัญสูงและใช้เสียงเรียกเข้าหรือการสั่นในอุปกรณ์ที่ใช้ Android 7.1 (API ระดับ 25) และต่ำกว่า

  • ช่องทางการแจ้งเตือนมีความสำคัญสูงในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป

ล็อกหน้าจอ

การแจ้งเตือนอาจปรากฏในหน้าจอล็อกได้สำหรับ Android 5.0 เป็นต้นไป

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

ผู้ใช้อาจใช้การตั้งค่าระบบเพื่อเลือกระดับรายละเอียดที่มองเห็นในการแจ้งเตือนในหน้าจอล็อก หรือปิดการแจ้งเตือนในหน้าจอล็อกทั้งหมด ตั้งแต่ Android 8.0 เป็นต้นไป ผู้ใช้จะปิดหรือเปิดใช้การแจ้งเตือนในหน้าจอล็อกสำหรับช่องทางการแจ้งเตือนแต่ละช่องทางได้

รูปที่ 4 การแจ้งเตือนในหน้าจอล็อกที่มีการซ่อนเนื้อหาที่ละเอียดอ่อน

ดูข้อมูลเพิ่มเติมได้ที่กำหนดระดับการเข้าถึงหน้าจอล็อก

ป้ายบนไอคอนของแอป

ใน Launcher ที่ใช้งานได้ในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป ไอคอนแอปจะแสดงการแจ้งเตือนใหม่ๆ ด้วยป้ายที่มีสี หรือที่เรียกว่าจุดแสดงการแจ้งเตือนบนไอคอนตัวเปิดแอปสำหรับแอปนั้นๆ

ผู้ใช้สามารถแตะไอคอนแอปค้างไว้เพื่อดูการแจ้งเตือนของแอปนั้นๆ ผู้ใช้สามารถปิดหรือดำเนินการต่างๆ ในการแจ้งเตือนจากเมนูนั้นได้ซึ่งคล้ายกับลิ้นชักการแจ้งเตือน

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

อ่านข้อมูลเพิ่มเติมเกี่ยวกับการทำงานของป้ายได้ที่แก้ไขป้ายแสดงการแจ้งเตือน

อุปกรณ์ Wear OS

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

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

รูปที่ 6 การแจ้งเตือนจะปรากฏขึ้นโดยอัตโนมัติในอุปกรณ์ Wear OS ที่จับคู่ไว้

ส่วนต่างๆ ของการแจ้งเตือน

ดีไซน์ของการแจ้งเตือนกำหนดโดยเทมเพลตของระบบ และแอปของคุณกำหนดเนื้อหาในแต่ละส่วนของเทมเพลต รายละเอียดบางอย่างของการแจ้งเตือนจะปรากฏเฉพาะในมุมมองแบบขยาย

รูปที่ 7 การแจ้งเตือนที่มีรายละเอียดเบื้องต้น

ส่วนต่างๆ ของการแจ้งเตือนที่ใช้กันโดยทั่วไปแสดงอยู่ในรูปที่ 7 ดังนี้

  1. ไอคอนขนาดเล็ก: ต้องระบุ โดยตั้งค่าโดยใช้ setSmallIcon()
  2. ชื่อแอป: กำหนดโดยระบบ
  3. การประทับเวลา: ระบบเป็นผู้ระบุ แต่คุณสามารถลบล้างได้โดยใช้ setWhen() หรือซ่อนโดยใช้ setShowWhen(false)
  4. ไอคอนขนาดใหญ่: มีหรือไม่ก็ได้ โดยปกติจะใช้สำหรับรูปภาพผู้ติดต่อเท่านั้น อย่าใช้โลโก้ดังกล่าวเป็นไอคอนแอป ตั้งค่าโดยใช้ setLargeIcon()
  5. ชื่อ: ไม่บังคับ ตั้งค่าโดยใช้ setContentTitle()
  6. ข้อความ: ไม่บังคับ ตั้งค่าโดยใช้ setContentText()

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการแจ้งเตือนด้วยฟีเจอร์เหล่านี้และเรื่องอื่นๆ โปรดอ่านสร้างการแจ้งเตือน

การดำเนินการกับการแจ้งเตือน

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

รูปที่ 8 การแจ้งเตือนที่มีปุ่มการทำงาน

เริ่มตั้งแต่ Android 7.0 (API ระดับ 24) เป็นต้นไป คุณจะเพิ่มการทำงานเพื่อตอบกลับข้อความหรือป้อนข้อความอื่นๆ จากการแจ้งเตือนโดยตรงได้อีกด้วย

ตั้งแต่ Android 10 (API ระดับ 29) เป็นต้นไป แพลตฟอร์มจะสร้างปุ่มดำเนินการโดยอัตโนมัติพร้อมการดำเนินการตาม Intent ที่แนะนำ

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

ต้องใช้อุปกรณ์ที่ปลดล็อก

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

ใน Android 12 (API ระดับ 31) ขึ้นไป คุณสามารถกําหนดค่าการดําเนินการจากการแจ้งเตือนเพื่อให้อุปกรณ์ปลดล็อกอยู่เพื่อให้แอปเรียกใช้การดําเนินการดังกล่าวได้ ไม่ว่าระบบจะเปิดใช้งานเวิร์กโฟลว์ใดก็ตาม ตัวเลือกนี้จะเพิ่มความปลอดภัยอีกชั้นให้กับการแจ้งเตือนในอุปกรณ์ที่ล็อกอยู่

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

Kotlin

val moreSecureNotification = Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

Java

Notification moreSecureNotification = new Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build();

การแจ้งเตือนที่ขยายได้

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

รูปที่ 9 การแจ้งเตือนที่ขยายได้สำหรับข้อความยาว

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

การอัปเดตและกลุ่มการแจ้งเตือน

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

อย่างไรก็ตาม หากจำเป็นต้องส่งการแจ้งเตือนหลายรายการ ให้พิจารณาจัดกลุ่มการแจ้งเตือนที่แยกกันให้เป็นกลุ่มเดียว ซึ่งใช้งานได้ใน Android 7.0 ขึ้นไป

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

รูปที่ 10 กลุ่มการแจ้งเตือนที่ยุบและขยาย

ดูวิธีเพิ่มการแจ้งเตือนไปยังกลุ่มได้ในสร้างกลุ่มการแจ้งเตือน

ช่องทางการแจ้งเตือน

เริ่มตั้งแต่ Android 8.0 (API ระดับ 26) เป็นต้นไป การแจ้งเตือนทั้งหมดจะต้องมีการกำหนดให้แก่ช่องทาง มิเช่นนั้นจะไม่ปรากฏขึ้น ซึ่งช่วยให้ผู้ใช้ปิดใช้ช่องทางการแจ้งเตือนหนึ่งๆ สำหรับแอปได้ แทนที่จะปิดใช้การแจ้งเตือนทั้งหมด ผู้ใช้สามารถควบคุมตัวเลือกภาพและเสียงสำหรับแต่ละช่องทางจากการตั้งค่าของระบบ Android ดังที่แสดงในรูปที่ 11 นอกจากนี้ผู้ใช้ยังแตะการแจ้งเตือนค้างไว้เพื่อเปลี่ยนลักษณะการทํางานของช่องทางที่เกี่ยวข้องได้อีกด้วย

สำหรับอุปกรณ์ที่ใช้ Android 7.1 (API ระดับ 25) และต่ำกว่า ผู้ใช้จัดการการแจ้งเตือนได้ทีละแอปเท่านั้น แต่ละแอปมีช่องทางเดียวใน Android 7.1 และต่ำกว่า

รูปที่ 11 การตั้งค่าการแจ้งเตือนสำหรับแอปนาฬิกาและช่องทางหนึ่งของแอปนั้น

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

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

ดูข้อมูลเพิ่มเติมได้ที่หัวข้อสร้างและจัดการช่องทางการแจ้งเตือน

ความสำคัญของการแจ้งเตือน

Android ใช้ความสำคัญของการแจ้งเตือนเพื่อกำหนดว่าการแจ้งเตือนควรรบกวนผู้ใช้ด้วยภาพและเสียงมากน้อยเพียงใด ยิ่งการแจ้งเตือนมีความสำคัญมากเท่าใด การแจ้งเตือนก็จะยิ่งรบกวนผู้ใช้มากขึ้นเท่านั้น

สำหรับ Android 7.1 (API ระดับ 25) และต่ำกว่า ความสำคัญของการแจ้งเตือนจะกำหนดโดย priority ของการแจ้งเตือน

ใน Android 8.0 (API ระดับ 26) ขึ้นไป ความสำคัญของการแจ้งเตือนจะกำหนดโดย importance ของช่องทางที่มีการโพสต์การแจ้งเตือนนั้น ผู้ใช้เปลี่ยนความสำคัญของช่องทางการแจ้งเตือนได้ในการตั้งค่าระบบ ดังที่แสดงในรูปที่ 12

รูปที่ 12 ผู้ใช้เปลี่ยนความสำคัญของแต่ละช่องทางใน Android 8.0 ขึ้นไปได้

ระดับความสำคัญและลักษณะการแจ้งเตือนที่เกี่ยวข้องมีดังนี้

  • ด่วน: มีเสียงเตือนและแสดงเป็นการแจ้งเตือนล่วงหน้า

  • สูง: มีเสียงเตือน

  • ปานกลาง: ไม่มีเสียงเตือน

  • ต่ำ: ไม่มีเสียงเตือนและไม่ปรากฏในแถบสถานะ

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

ดูข้อมูลเพิ่มเติมได้ที่วิธีกำหนดความสำคัญ

โหมดห้ามรบกวน

ผู้ใช้เปิดใช้โหมดห้ามรบกวนได้ใน Android 5.0 (API ระดับ 21) เป็นต้นไป ซึ่งจะปิดเสียงและการสั่นสำหรับการแจ้งเตือนทั้งหมด การแจ้งเตือนจะยังปรากฏใน UI ระบบตามปกติ เว้นแต่ผู้ใช้จะระบุเป็นอย่างอื่น

โหมดห้ามรบกวนมี 3 ระดับดังนี้

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

รูปที่ 13 ผู้ใช้อนุญาตให้แสดงการแจ้งเตือนได้ตามหมวดหมู่สำหรับทั้งระบบ (ด้านซ้าย) และผู้ส่งหรือผู้โทร (ด้านขวา)

ใน Android 8.0 (API ระดับ 26) ขึ้นไป ผู้ใช้อนุญาตให้แสดงการแจ้งเตือนสำหรับหมวดหมู่เฉพาะของแอป (หรือที่เรียกกันว่า "ช่องทาง") เป็นการเพิ่มเติมได้ด้วยการลบล้างโหมดห้ามรบกวนในช่องทางที่ต้องการทีละช่องทาง ตัวอย่างเช่น แอปสำหรับการชำระเงินอาจมีช่องทางสำหรับการแจ้งเตือนที่เกี่ยวข้องกับการถอนและการฝากเงิน ผู้ใช้สามารถอนุญาตให้แสดงการแจ้งเตือนการถอนเงิน การแจ้งเตือนการฝากเงิน หรือทั้ง 2 อย่างเมื่อใช้โหมดลำดับความสำคัญสูง

สำหรับอุปกรณ์ที่ใช้ Android 7.1 (API ระดับ 25) และต่ำกว่า ผู้ใช้อนุญาตให้แสดงการแจ้งเตือนแบบทีละแอปได้ แทนที่จะอนุญาตแบบทีละช่องทาง

คุณต้องตั้งค่าหมวดหมู่สำหรับทั้งระบบ จึงจะกำหนดค่าการแจ้งเตือนให้เหมาะสมสำหรับการตั้งค่าของผู้ใช้เหล่านี้ได้

การแจ้งเตือนสำหรับบริการที่ทำงานอยู่เบื้องหน้า

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

อ่านข้อมูลเพิ่มเติมได้ในบริการที่ทำงานอยู่เบื้องหน้า หากกำลังสร้างมีเดียเพลเยอร์ โปรดอ่านการเล่นสื่อในเบื้องหลังด้วย

ขีดจํากัดของโพสต์

เริ่มตั้งแต่ Android 8.1 (API ระดับ 27) เป็นต้นไป แอปจะส่งเสียงเตือนได้เพียง 1 ครั้งในแต่ละวินาที หากแอปแสดงการแจ้งเตือนหลายรายการใน 1 วินาที การแจ้งเตือนทั้งหมดจะปรากฏขึ้นตามที่ควรจะเป็น แต่จะมีเฉพาะการแจ้งเตือนแรกในแต่ละวินาทีเท่านั้นที่ส่งเสียงเตือน

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

ความเข้ากันได้ของการแจ้งเตือน

UI ของระบบการแจ้งเตือน Android และ API ที่เกี่ยวข้องกับการแจ้งเตือนมีการพัฒนาไปอย่างต่อเนื่อง หากต้องการใช้ฟีเจอร์ Notification API ล่าสุดขณะที่รองรับอุปกรณ์รุ่นเก่า ให้ใช้ Notification API ของ Support Library ซึ่งได้แก่ NotificationCompat และคลาสย่อย รวมถึง NotificationManagerCompat ซึ่งจะช่วยให้คุณไม่ต้องเขียนโค้ดแบบมีเงื่อนไขเพื่อตรวจสอบระดับ API เนื่องจาก API เหล่านี้จะจัดการเรื่องดังกล่าวให้คุณเอง

NotificationCompat ได้รับการอัปเดตขณะที่แพลตฟอร์มค่อยๆ พัฒนาขึ้นให้รวมเมธอดล่าสุดไว้ด้วย อย่างไรก็ตาม ความพร้อมใช้งานของเมธอดใน NotificationCompat ไม่ได้รับประกันว่าฟีเจอร์ที่เกี่ยวข้องจะมีให้ใช้งานในอุปกรณ์รุ่นเก่า ในบางกรณี การเรียกใช้ API ที่เพิ่งเปิดตัวจะทำให้ดำเนินการต่างๆ ในอุปกรณ์รุ่นเก่าไม่ได้

ต่อไปนี้เป็นสรุปการเปลี่ยนแปลงลักษณะการทำงานที่เด่นชัดที่สุดตามระดับ API สำหรับการแจ้งเตือนใน Android

Android 5.0, API ระดับ 21

  • เปิดตัวการแจ้งเตือนในหน้าจอล็อกและการแจ้งเตือนล่วงหน้า

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

  • เพิ่มเมธอดในการตั้งค่าว่าจะแสดงการแจ้งเตือนในหน้าจอล็อกหรือไม่ (เช่น setVisibility()) และเพื่อระบุข้อความแจ้งเตือนเวอร์ชัน "สาธารณะ"

  • เพิ่มเมธอด setPriority() ซึ่งบอกระบบว่าการแจ้งเตือนรบกวนผู้ใช้มากน้อยเพียงใด เช่น การตั้งค่าลำดับความสำคัญเป็นสูงจะทำให้การแจ้งเตือนปรากฏเป็นการแจ้งเตือนล่วงหน้า

  • เพิ่มการรองรับสแต็กการแจ้งเตือนในอุปกรณ์ Android Wear (ตอนนี้ใช้ชื่อว่า Wear OS) ใส่การแจ้งเตือนลงในสแต็กโดยใช้ setGroup() สแต็กการแจ้งเตือนซึ่งต่อมาเรียกว่ากลุ่มหรือบันเดิลยังไม่รองรับในแท็บเล็ตหรือโทรศัพท์จนกว่าจะใช้ Android 7.0 (API ระดับ 24)

Android 7.0, API ระดับ 24

  • จัดรูปแบบเทมเพลตการแจ้งเตือนใหม่เพื่อเน้นรูปภาพหลักและภาพที่ใช้แทนบุคคล

  • เพิ่มเทมเพลตการแจ้งเตือน 3 รายการ ได้แก่ รายการหนึ่งสำหรับแอปรับส่งข้อความ และอีก 2 รายการสำหรับการตกแต่งมุมมองเนื้อหาที่กำหนดเองและขยายได้ รวมทั้งการตกแต่งระบบแบบอื่นๆ

  • เพิ่มการรองรับอุปกรณ์มือถือ เช่น โทรศัพท์และแท็บเล็ต สำหรับกลุ่มการแจ้งเตือน ใช้ API เดียวกันกับสแต็กการแจ้งเตือน Android Wear (ปัจจุบันใช้ชื่อว่า Wear OS) ที่เปิดตัวใน Android 5.0 (API ระดับ 21)

  • อนุญาตให้ผู้ใช้ตอบกลับภายในการแจ้งเตือนโดยใช้การตอบกลับแบบในหน้า ผู้ใช้สามารถป้อนข้อความซึ่งจะส่งไปยังแอปหลักของการแจ้งเตือน

Android 8.0, API ระดับ 26

  • ทำให้การแจ้งเตือนแต่ละรายการอยู่ในแชแนลที่เฉพาะเจาะจง

  • อนุญาตให้ผู้ใช้ปิดการแจ้งเตือนในแต่ละช่องทางแทนที่จะปิดการแจ้งเตือนทั้งหมดจากแอป

  • ทำให้แอปที่มีการแจ้งเตือนที่ใช้งานอยู่แสดงป้ายการแจ้งเตือนทับบนไอคอนแอปนั้นๆ ในหน้าจอหลักหรือหน้าจอ Launcher

  • อนุญาตให้ผู้ใช้เลื่อนการแจ้งเตือนได้จากลิ้นชัก คุณตั้งค่าระยะหมดเวลาอัตโนมัติสำหรับการแจ้งเตือนได้

  • ช่วยให้คุณตั้งค่าสีพื้นหลังของการแจ้งเตือนได้

  • ย้าย API บางรายการที่เกี่ยวข้องกับลักษณะการทํางานของการแจ้งเตือนจาก Notification ไปยัง NotificationChannel เช่น ใช้ NotificationChannel.setImportance() แทน NotificationCompat.Builder.setPriority() สำหรับ Android 8.0 ขึ้นไป

Android 13.0, API ระดับ 33

Android 14.0, API ระดับ 34

  • จำกัดการแจ้งเตือน Intent แบบเต็มหน้าจอไว้สำหรับแอปที่มีการโทรและการปลุก ใช้ NotificationManager.canUseFullScreenIntent API เพื่อตรวจสอบว่าแอปของคุณมีสิทธิ์หรือไม่ หากไม่ได้ตั้งค่าไว้ แอปของคุณจะใช้ ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT เพื่อเปิดหน้าการตั้งค่าได้ ซึ่งผู้ใช้จะให้สิทธิ์ได้

  • เปลี่ยนวิธีที่ผู้ใช้เห็นการแจ้งเตือนที่ปิดไม่ได้โดยอนุญาตให้ผู้ใช้ปิดการดำเนินการของการแจ้งเตือนได้แม้ว่าจะมีการตั้งค่า Flag Notification.FLAG_ONGOING_EVENT ไว้ก็ตาม การดำเนินการนี้จะไม่มีผลกับการแจ้งเตือน CallStyle หากตั้งค่า Flag Notification.FLAG_ONGOING_EVENT หรือตัวควบคุมนโยบายอุปกรณ์ (DPC) และแพ็กเกจที่รองรับสำหรับองค์กร นอกจากนี้ การตั้งค่านี้จะไม่มีผลเมื่อโทรศัพท์ล็อกอยู่ หรือหากผู้ใช้เลือกล้างทั้งหมด