android - 事件的最后编辑? Android 日历提供商

标签 android android-contentprovider

我有一个日历同步程序,我的主要问题是找到事件的最后编辑。我们有这方面的元数据吗?我需要这个值来同步,我发现它已经一周了,我猜谷歌不完全支持日历 API。以前有人遇到过这个问题吗?

感谢您的阅读

最佳答案

我回来了,经过一周的研究,我找到了一个方法,那就是:一个新的事件创建、删除、修改必须使用asSyncAdapter

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

关于android - 事件的最后编辑? Android 日历提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13776388/

相关文章:

android - 内容提供商 uri 如何工作?

android - ContentProvider的OnCreate返回false会怎样?

android - Android Activity 之间传递 int 变量

android - menu.findItem 返回 null

java - 从 Apache Http 客户端迁移到 OkHttp

android - Chrome 是否有书签 Contentprovider 来获取浏览器历史记录

android - Content Provider在多个app中的主要用途是什么

java - 在 Android 中将阿拉伯语文本转换为 UTF8

java - 在android游戏中获取移动球的坐标

android - 如何从 ContactsContract.Contacts 获取联系人的 LOOKUP_KEY?