5

我正在开发一个应用程序来创建、更新和删除本地 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 日历中。那没有问题。但是当用户没有在我的应用程序中添加任何提醒时,默认的谷歌日历会创建默认提醒。谁能告诉我如何解决这个问题?

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

我尝试使用

values.put(Events.HAS_ALARM, 0);

但是,没有用。

4

2 回答 2

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+""});
于 2013-10-03T13:42:13.263 回答
1

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

属性名:reminders.useDefault
值:boolean
描述:日历的默认提醒是否适用于事件。
备注:可写

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

于 2013-09-29T17:24:30.437 回答