Is it possible to set a specific date with the Alarm Clock?

868 views Asked by At

this is how I set my alarm clock:

//all this inside a onClickListener
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 30);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.YEAR, 2020);

Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM);
intent.putExtra(AlarmClock.EXTRA_HOUR, Integer.parseInt(str1));
intent.putExtra(AlarmClock.EXTRA_MINUTES, Integer.parseInt(str2));
intent.putExtra(AlarmClock.EXTRA_MESSAGE, title.getText().toString());
intent.putExtra(AlarmClock.EXTRA_DAYS, cal.get(Calendar.DAY_OF_MONTH));
intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
startActivity(intent);

All this set very well the app alarm clock on my device regarding the time, but not for the date.

Example:

  1. Current time: 12:00 Monday

    Time from my code: 13:00 Saturday

    The alarm clock sets to play (the ringtone) in 1 hour

  2. Current time: 12:00 Monday

    Time from my code: 11:00 Tuesday

    The alarm clock sets to play (the ringtone) in 25 hours

I dont know how to use in particular this line of code:

intent.putExtra(AlarmClock.EXTRA_DAYS, cal.get(Calendar.DAY_OF_MONTH));

Thanks in advance

1

There are 1 answers

0
einUsername On BEST ANSWER

You cannot set the an alarm for a specific date with an AlarmClock provider.

AlarmClock.EXTRA_DAYS is for repeating alarms. You could use something like Calendar.SUNDAY and it would ring every Sunday.

If you want more control over an alarm, you have to program it yourself. Look into the AlarmManager class. It allows you to schedule your application to be run at some point in the future.