user2420164
user2420164

Reputation: 33

How to set day of alarm in android by using AlarmClock

we can create alarm with intent in android

        Intent i = new Intent(AlarmClock.ACTION_SET_ALARM); 
    i.putExtra(AlarmClock.EXTRA_MESSAGE, "New Alarm"); 
    i.putExtra(AlarmClock.EXTRA_HOUR, 23); 
    i.putExtra(AlarmClock.EXTRA_MINUTES, 11); 

we want to add day property while creating an alarm . However , AlarmClock does not contain a property about "Extra_Day_Week" so we did not set day of alarm. Do you have any idea to solve this problem by using intent ve alarmclock

Thank your creative response

Upvotes: 2

Views: 1737

Answers (3)

charles-allen
charles-allen

Reputation: 4081

The property is called EXTRA_DAYS:

You can use it like this:

ArrayList<Integer> alarmDays = new ArrayList<>();
alarmDays.add(Calendar.MONDAY);
alarmDays.add(Calendar.WEDNESDAY);
alarmDays.add(Calendar.FRIDAY);

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_DAYS, alarmDays);
i.putExtra(AlarmClock.EXTRA_HOUR, 23);
i.putExtra(AlarmClock.EXTRA_MINUTES, 11);
i.putExtra(AlarmClock.EXTRA_MESSAGE, "New Alarm");    
i.putExtra(AlarmClock.EXTRA_VIBRATE, true);

startActivity(i);

Any other users spotting this, don't forget to request permission! (in the manifest)

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>

Upvotes: 0

dharmendra
dharmendra

Reputation: 7881

You might forgot permission to add in AndroidManifest.xml

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>

Upvotes: 1

Bhavin Nattar
Bhavin Nattar

Reputation: 3215

May this Help you:

    Calendar cal = Calendar.getInstance();

    cal.setTimeInMillis(System.currentTimeMillis());
    cal.clear();
    cal.set(2012,2,8,18,16);// instead of these lines you can use below lines in comment

    //cal.set(Calendar.HOUR_OF_DAY, 16);
    //cal.set(Calendar.MINUTE, 25);
    //cal.set(Calendar.SECOND, 0);
    //cal.set(Calendar.MILLISECOND, 0);

    AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this, AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

    alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

Upvotes: 1

Related Questions