Как избежать попадания SystemAlarms в мое приложение getNextAlarmClock() моего приложения
Я создаю приложение, в котором я устанавливаю сигналы тревоги для определенного времени. Для этого я использовал AlarmClock
Android для установки будильника. Здесь я пытаюсь показать следующий AlarmClock
время по его заявлению, чтобы узнать, следующий сигнал тревоги.
Например: я установил будильники в 9:00, 18:00, используя alarmManager.setAlarmClock(...)
, Мое приложение показывает следующее время будильника, используя alarmManager.getNextAlarmClock()
на рабочем столе говорят 9:00 утра.
Вот проблема, с которой я сталкиваюсь, когда я устанавливаю некоторые другие будильники на свое приложение Clocks, установленное в Системе, и устанавливаю Будильник на 8:00. Это время будильника отражается в моем приложении, и следующий будильник показывает, что следующий раз установлен на 8 00:00 вместо 9:00, чего не должно быть.
private String getNextAlarmClock() {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
AlarmManager.AlarmClockInfo alarmClockInfo = alarmManager.getNextAlarmClock();
Log.d(TAG, "time of next alarm in millis" + alarmClockInfo.getTriggerTime());
return alarmClockInfo.getTriggerTime() + "";
}
Может кто-нибудь, пожалуйста, помогите мне в этом отношении. Пожалуйста, оцените эту помощь.
Заранее спасибо!
1 ответ
Если вы вызываете диспетчер системных тревог, то это является общим для всех приложений на вашем мобильном телефоне. А также getNextAlarmClock()
даст вам следующую тревогу, установленную на вашем мобильном телефоне, а не вашим приложением. Если вы хотите, чтобы сигнал тревоги относился к вашему приложению, вы должны создать его без использования Alarm Manager.
Если вас устраивает системный диспетчер аварийных сигналов, и проблема заключается только в отображении времени следующего аварийного сигнала, то я бы порекомендовал использовать диспетчер системных аварий для установки времени и сохранения этой информации в БД / общих настройках. Для отображения следующего времени будильника вы можете получить сохраненные данные из БД, а не получать их из диспетчера тревог.