Search code examples
androidalarmmanageralarm

Android AlarmClock() , setting alarm date


I am having trouble with setting a specific date to AlarmClock() rather than AlarmManager(). All the example I am having over internet shows to start an activity at a specific date using AlarmManager(). but my app dosent have / need a custom activity. I only need to register a system alarm on a specific day where it will ring like generic android system alarm.

Calendar c = Calendar.getInstance();
Intent alarmIntent = new Intent(AlarmClock.ACTION_SET_ALARM);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent.putExtra(AlarmClock.EXTRA_MESSAGE, "Polo!");
alarmIntent.putExtra(AlarmClock.EXTRA_HOUR, c.get(Calendar.HOUR_OF_DAY));
alarmIntent.putExtra(AlarmClock.EXTRA_MINUTES, c.get(Calendar.MINUTE) + 1);
context.startActivity(alarmIntent);

above is my code. I tried to use

alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, c.get(Calendar.DAY_OF_MONTH));

but it only takes the current day.

Please help me setting alarm using the AlarmClock() on a specific day.


Solution

  • From documentation:

    EXTRA_DAYS (optional): Weekdays for repeating alarm.

    So actually, AlarmClock.EXTRA_DAYS is for days in week when this alarm should ring, so you can't set exact date for the alarm. Example usage:

    ArrayList<Integer> days = new ArrayList<Integer>();
    days.add(Calendar.SATURDAY);
    alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, days);