我有一个日历同步程序,我的主要问题是找到事件的最后编辑。我们有这方面的元数据吗?我需要这个值来同步,我发现它一个星期了,我猜谷歌不完全支持日历 API。有没有人遇到过这个问题?
感谢您的阅读
我有一个日历同步程序,我的主要问题是找到事件的最后编辑。我们有这方面的元数据吗?我需要这个值来同步,我发现它一个星期了,我猜谷歌不完全支持日历 API。有没有人遇到过这个问题?
感谢您的阅读
我回来了,经过一周的研究,我找到了一个方法,那就是:A new event create, delete, modified must useasSyncAdapter
public static Uri asSyncAdapter(Uri uri, String account, String accountType) {
return uri
.buildUpon()
.appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, account)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, accountType)
.build();
}
//例如:
ContentValues values = new ContentValues();
values.put(Events.CALENDAR_ID, calendar_Id);
values.put(Events.ORGANIZER, username);
values.put(Events.TITLE, summary);
values.put(Events.DESCRIPTION, description);
values.put(Events.DTSTART, GlobalVar.convertTIMEtomilisecond(dtstart));
values.put(Events.DTEND, GlobalVar.convertTIMEtomilisecond(dtend));
values.put(Events.EVENT_TIMEZONE, timeZone);
values.put(Events.EVENT_LOCATION, event_location);
values.put(Events._SYNC_ID, uuid);
values.put(Events.SYNC_DATA1, etag);
values.put(Events.SYNC_DATA2, calendar.toString());
Uri syncUri = CalendarProvider.asSyncAdapter(Events.CONTENT_URI, username, context.getResources().getString(R.string.ACCOUNT_TYPE));
ContentResolver cr = context.getContentResolver();
cr.insert(syncUri, values);
//在这里获取脏事件
cur = cr.query(Uri.parse("content://com.android.calendar/events"), null, Events.DIRTY+" = ?", new String[]{String.valueOf(1)}, null);
while (cur.moveToNext()) {
int id = (int) cur.getLong(cur.getColumnIndex(Events._ID));
//它工作正常:P