Reputation: 33
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
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
Reputation: 7881
You might forgot permission to add in AndroidManifest.xml
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
Upvotes: 1
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