[英]Android - Adding a calendar event without reminder
我正在使用以下功能将事件添加到日历:
public String addEventToCalendar(long startDate, long endDate, String recurrenceRule, boolean isAllDay, String title, String description, String location, long calendarID) {
ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();
TimeZone timeZone = TimeZone.getDefault();
values.put(CalendarContract.Events.DTSTART, startDate);
values.put(CalendarContract.Events.DTEND, endDate);
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
if (recurrenceRule != null)
values.put(CalendarContract.Events.RRULE, recurrenceRule);
values.put(CalendarContract.Events.TITLE, title);
values.put(CalendarContract.Events.DESCRIPTION, description);
values.put(CalendarContract.Events.CALENDAR_ID, calendarID);
values.put(CalendarContract.Events.ALL_DAY, isAllDay);
values.put(CalendarContract.Events.EVENT_LOCATION, location);
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
return null; // we don't have the right permissions
}
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
String eventID = uri.getLastPathSegment();
return eventID;
}
它有效,但是日历事件产生了30分钟的提醒! 我不知道为什么。 有什么线索吗? 非常感谢。
插入日历事件后,似乎添加了默认提醒。
您可以尝试的是在插入事件后立即检查是否有与事件关联的提醒。 并删除它(如果是)。
CalendarContract.Reminders.query(contentResolver, eventId, projection)
将为您提供与eventId相关的提醒列表
如果游标包含任何提醒,则可以使用以下命令将其删除:
getContentResolver().delete(ContentUris.withAppendedId(CalendarContract.Reminders.CONTENT_URI, reminderId), null, null);
docs: http : //developer.android.com/reference/android/provider/CalendarContract.Reminders.html
尝试添加这个
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.HAS_ALARM, 0);
事件是否有警报。 列名。
类型:INTEGER(布尔值)
公共静态最终字符串HAS_ALARM =“ hasAlarm”;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.