ฉันมีแอพที่ให้ผู้ใช้สามารถตั้งเวลาปลุกได้หลากหลาย ปัจจุบันใช้ AlarmManager บวกกับ BroadcastReceiver และ AlertDialog เพื่อแจ้งเตือนผู้ใช้เมื่อสัญญาณเตือนดังขึ้น
ฉันต้องการดูว่าแอปของฉันสามารถใช้งานนาฬิกาปลุกในตัวได้หรือไม่ ฉันรู้ว่าฉันสามารถตั้งเวลาปลุกได้ดังนี้
Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_HOUR, new Date(alarm.getTime()).getHours());
i.putExtra(AlarmClock.EXTRA_MINUTES, new Date(alarm.getTime()).getMinutes());
i.putExtra(AlarmClock.EXTRA_MINUTES, alarm.getDescription());
i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
context.startActivity(i);
แต่นี่นำเสนอปัญหา 2 ประการ:
- ดูเหมือนจะไม่มีวิธีตั้งเวลาปลุกล่วงหน้า >24 ชั่วโมงข้างหน้า
- การเตือนในตัวของ Android อนุญาตให้ตั้งค่าการเตือนได้ 10 ครั้งเท่านั้น
ในการแก้ไขรายการที่ 1 ฉันสามารถใช้ AlarmManager เพื่อกำหนดเวลาให้ตั้งเวลาปลุกผู้ใช้ภายใน 24 ชั่วโมงหลังจากครบกำหนด อย่างไรก็ตาม สิ่งนี้ทำให้ฉันมีรายการที่ 2 - โดยหลักการแล้วฉันต้องการวิธีลบการเตือนของแอปออกจากนาฬิกาปลุก Android หลังจากที่ดำเนินการแล้ว (เพื่อหลีกเลี่ยงการเตือนของแอปที่ใช้พื้นที่การเตือน) แต่ไม่สามารถหาทางรับได้ รายการการเตือนและลบออกหนึ่งรายการ
เป็นไปได้หรือฉันต้องยึดแนวทาง AlarmManager/AlertDialog ด้วยตนเอง