как поймать событие будильника на Android?

Я хочу создать список воспроизведения для будильника в Android. Приложение, которое позволит мне установить будильник на 7 утра в будний день, и каждый раз он будет проигрывать новую мелодию.

Мне удалось программно настроить собственный будильник с помощью этого кода:

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra(AlarmClock.EXTRA_HOUR, hour);
i.putExtra(AlarmClock.EXTRA_MINUTES, minutes);
i.putExtra(AlarmClock.EXTRA_RINGTONE, "/path/to/file.mp3");
i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);

Я хотел бы зарегистрировать вызов этого кода, чтобы он запускался после того, как пользователь отключил текущий будильник, и это возможно. Вопрос в том, как мне зафиксировать/отменить событие, при котором срабатывает тревога.

Кроме того, хотелось бы каким-то образом сохранить некоторые дополнительные пары ключ\значение в срабатывании будильника, чтобы я мог их прочитать, как только поймаю сработавший будильник. Где я должен сохранить эти данные? PutExtra в моем коде здесь связан с действием, которое устанавливает новый будильник, а не с действием, которое его воспроизводит.


person Zack    schedule 10.07.2016    source источник


Ответы (1)


используйте alarmmanager вместо одного намерения. Вы можете найти хороший пример в этом ответе: https://stackoverflow.com/a/8801990/5052976

person Katharina    schedule 10.07.2016