我正在开展一个涉及使用Android日历API读取和操作数据的项目。我将使用API 14 CalendarContract执行此操作,以及针对旧设备的更可疑的未记录的API,以实现一些向后兼容性。
我目前正在玩数据库,以了解它们的工作原理。到现在为止还挺好。
我发现的一个问题是,当我试图更改与会者的状态(用户的状态,而不是其他任何与会者的状态)时,这似乎并未真正接受对该事件的邀请
例如,使用2个Google日历帐户,我执行此操作: 帐户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);
这会成功将数据库中的attendeeStatus更新为1。
但是,这并不会更新他们的实际出勤率。所以我的问题是,数据库模式中是否有另一个用于此目的的字段?或者是否有更好/更有效的解决方案?和/或是否有可能强制它然后与Google日历系统同步,以便我可以看到帐户A已在帐户B的Google日历帐户上接受了?
值得注意的是我尝试了以下内容:
getContentResolver().notifyChange(eventUri, null);
getContentResolver().notifyChange(eventsUri, null);
哪个没有帮助。
注意:上面的代码专门用于4.0之前的设备,但对于ICS来说差不多相同。
答案 0 :(得分:0)
问题解决了:
以上内容适用于Google日历帐户,但无法通过Exchange连接正确同步。