从我的应用程序创建日历事件,无需默认提醒

时间:2013-09-26 05:18:35

标签: android google-calendar-api android-calendar

我正在开发一款可在Google原生日历中创建,更新和删除活动的应用。 我正在通过以下代码创建一个事件:

ContentValues cvEvent = new ContentValues();
cvEvent.put(Events.DTSTART, startMillis);
cvEvent.put(Events.DTEND, endMillis);
cvEvent.put(Events.TITLE, strJobName);
cvEvent.put(Events.CALENDAR_ID, mlCalendarID);
cvEvent.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uriEvent = crEvent.insert(Events.CONTENT_URI, cvEvent);

但问题是此事件会创建由用户在其日历(Google)中设置的默认提醒。

我还允许用户在我的应用中添加提醒。因此,当他添加提醒时,我会在默认的Google日历中插入提醒。这没有问题。但是,当用户未在我的应用中添加任何提醒时,默认的Google日历会创建默认提醒。有谁能告诉我如何解决这个问题?

P.S:我没有使用同步适配器。我正在通过自己的逻辑创建和删除事件和提醒。

我尝试使用

values.put(Events.HAS_ALARM, 0);

但是,没用。

2 个答案:

答案 0 :(得分:4)

如何使用插入事件后获得的事件ID以编程方式删除提醒?

ContentValues cvEvent = new ContentValues();
cvEvent.put(Events.DTSTART, startMillis);
cvEvent.put(Events.DTEND, endMillis);
cvEvent.put(Events.TITLE, strJobName);
cvEvent.put(Events.CALENDAR_ID, mlCalendarID);
cvEvent.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uriEvent = crEvent.insert(Events.CONTENT_URI, cvEvent);

//added code
long eventID = Long.parseLong(uri.getLastPathSegment());
ContentResolver cr = getContentResolver();
cr.delete(Reminders.CONTENT_URI, Reminders.EVENT_ID+"=?", new String[]{eventID+""});

答案 1 :(得分:1)

不确定如何在Android中执行此操作,但如果您查看Google的文档,则POST上有一个名为 reminders.useDefault 的字段,用于将事件插入日历。

财产名称:reminders.useDefault
值:布尔值
说明:日历的默认提醒是否适用于该事件 备注:可写

https://developers.google.com/google-apps/calendar/v3/reference/events/insert