我正在研究涉及使用Android日历API读取和操作数据的项目。我将使用API 14 CalendarContract和更老的设备的更可疑的未公开API来实现这一点,以实现一些向后兼容性。通过Android CalendarContract接受邀请
我目前正在玩弄数据库,以了解他们是如何工作的。到现在为止还挺好。
我发现的一个问题是,当我尝试更改与会者状态(用户状态,而不是其他任何与会者)的状态时,似乎并未实际接受邀请事件。
例如,2个谷歌日历帐户我这样做: 帐户A被记录在设备上 帐户B创建活动,邀请帐户A 事件显示了对帐户的设备 尝试接受通过日历邀请蜜蜂。
这是我努力的最后一步。
这是我做了这样的事情:
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来说已经足够接近了。
嗨,只是想知道你是否可以阐明我的问题。我为2.3.3和4.0创建了一个日历SyncAdapter。因此,用户将在其设备上为我的应用创建帐户,并将日历/活动与其帐户(不是Google帐户)相关联。使用邀请创建活动时,保存后会显示一条消息:“将发送邀请”,但没有发送任何消息。无论如何,我的应用程序发送这些电子邮件?我知道它适用于Google帐户。 –