ประวัติการแจ้งเตือน

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

ประวัติการแจ้งเตือนมีไว้เพื่อรองรับกรณีการใช้งานต่อไปนี้

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

การใช้งานอ้างอิงของคอมโพเนนต์เหล่านี้ในประวัติการแจ้งเตือนมีดังนี้

  • การตั้งค่า: packages/apps/Settings/src/com/android/settings/notification/history
  • เซิร์ฟเวอร์ระบบ: com.android.server.notification.NotificationHistory.*.java

ขั้นตอนสำคัญในการติดตั้งใช้งานประวัติการแจ้งเตือนมีดังนี้

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

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

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

ระยะเวลาการเก็บรักษาประวัติการแจ้งเตือนเริ่มต้นคือ 24 ชั่วโมง

การทดสอบหน่วยเหล่านี้มีไว้สำหรับคอมโพเนนต์แต่ละรายการของโค้ด

  • การทดสอบหน่วยของเซิร์ฟเวอร์ระบบ FrameworksUiServicesTests
  • การทดสอบหน่วยการตั้งค่า: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.notification"