0

我正在开发一个项目,该项目涉及使用 Android 日历 API 读取和操作数据。我将使用 API 14 CalendarContract 和用于旧设备的更可疑的未记录 API 来执行此操作,以实现一些向后兼容性。

我目前正在玩数据库,以了解它们是如何工作的。到目前为止,一切都很好。

我发现的一个问题是,当我尝试更改参加者的状态(用户的状态,而不是任何其他参加者的状态)时,这似乎实际上并没有接受该活动的邀请。

例如,使用 2 个谷歌日历帐户,我这样做: 帐户 A 在设备上登录 帐户 B 创建事件并邀请帐户 A 事件显示在帐户 A 设备上 尝试通过日历 API 接受邀请。

这是我正在努力的最后一步。

这就是我正在做的事情:

ContentValues event = new ContentValues();

event.put("attendeeStatus", "1");//accept

Uri eventsUri = Uri.parse(getCalendarUriBase() + "attendees");
Uri eventUri = ContentUris.withAppendedId(eventsUri, id);

iNumRowsUpdated = getContentResolver().update(eventUri, event, null, null);

这成功地将数据库中的参加者状态更新为 1。

但是,这不会更新他们的实际出席情况。所以我的问题是,数据库模式中是否有另一个字段用于此目的?还是有更好/更有效的解决方案?和/或是否可以强制它与谷歌日历系统同步,以便我可以看到账户 A 已接受账户 B 的谷歌日历账户?

值得注意的是,我尝试了以下方法:

getContentResolver().notifyChange(eventUri, null);

getContentResolver().notifyChange(eventsUri, null);

这没有帮助。

注意:上面的代码专门针对 4.0 之前的设备,但对于 ICS 来说已经足够接近了。

4

1 回答 1

0

问题已解决:

以上内容适用于 Google 日历帐户,但无法通过 Exchange 连接正确同步。

于 2012-06-28T12:43:08.343 回答