public String pushAppointmentsToCalender(Activity curActivity, String title, String addInfo, long startDate, boolean needReminder) {
try {
String eventUriString = "content://com.android.calendar/events";
ContentValues eventValues = new ContentValues();
eventValues.put("calendar_id", 1); // id, We need to choose from
// our mobile for primary
//CalendarContract.EXTRA_EVENT_END_TIME
// its 1
eventValues.put("title", title);
eventValues.put("description", addInfo);
eventValues.put("dtstart", startDate);
eventValues.put("dtend", startDate);
String untileDate = "20220515";
switch (repeatSelection) {
case "Every Day":
if (!untileDate.equals("")) {
eventValues.put("rrule", "FREQ=DAILY;UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=DAILY");
}
break;
case "Every Week":
if (!untileDate.equals("")) {
eventValues.put("rrule", "FREQ=WEEKLY;UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=WEEKLY");
}
break;
case "Every Month":
if (!untileDate.equals("")) {
eventValues.put("rrule", FREQ=MONTHLY;UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=MONTHLY");
}
break;
case "Custom":
switch (frequency) {
case "1":
if (!untileDate.equals("")) {
eventValues.put("rrule", "FREQ=DAILY;INTERVAL=" + Integer.parseInt(every) + ";UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=DAILY;INTERVAL=" + Integer.parseInt(every));
}
break;
case "3":
if (!untileDate.equals("")) {
eventValues.put("rrule", "FREQ=WEEKLY;INTERVAL=" + Integer.parseInt(every) + ";UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=WEEKLY;INTERVAL=" + Integer.parseInt(every));
}
break;
case "2":
if (!untileDate.equals("")) {
eventValues.put("rrule", "FREQ=MONTHLY;INTERVAL=" + Integer.parseInt(every) + ";UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=MONTHLY;INTERVAL=" + Integer.parseInt(every));
}
break;
case "4":
if (!untileDate.equals("")) {
eventValues.put("rrule", "FREQ=YEARLY;INTERVAL=" + Integer.parseInt(every) + ";UNTIL=" + untileDate);
} else {
eventValues.put("rrule", "FREQ=YEARLY;INTERVAL=" + Integer.parseInt(every));
}
break;
}
break;
}
eventValues.put("allDay", 0); //If it is bithday alarm or such
// kind (which should remind me for whole day) 0 for false, 1
// for true
eventValues.put("eventStatus", 1); // This information is
TimeZone timeZone = TimeZone.getDefault();
eventValues.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
eventValues.put("hasAlarm", 1); // 0 for false, 1 for true
Uri eventUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(eventUriString), eventValues);
long eventID = Long.parseLong(eventUri.getLastPathSegment());
if (needReminder) {
/**************** Event: Reminder(with alert) Adding reminder to event ******************/
String reminderUriString = "content://com.android.calendar/reminders";
ContentValues reminderValues = new ContentValues();
reminderValues.put("event_id", eventID);
reminderValues.put("minutes", 10); // Default value of the
// system. Minutes is a
// integer
reminderValues.put("method", 1); // Alert Methods: Default(0),
// Alert(1), Email(2),
// SMS(3)
Uri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
}
return "" + eventID;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
重复选择类型=每天,每周,每月,自定义;频率类型=1,2,3,4;当您选择自定义频率类型 1 = DAILY,2=MONTHLY,3=WEEKLY,4 YEARLY;