CalendarContract事件:插入了错误的ID,Android中的日历已损坏

时间:2013-11-20 19:11:41

标签: android android-calendar

我在使用CalendarContract测试插入事件时犯了一个错误。

我在事件插入中设置了自己的_ID。

values.put(Events._ID, "156498713465");

现在,我的所有新活动都是使用错误的ID创建的(例如-535191590)。

当我点击Google日历应用程序中的活动时,它会崩溃。

我遇到与此主题相同的错误: Calendar corrupted in Android

我试图删除所有不良事件:

activity.getContentResolver().delete(Events.CONTENT_URI, Events._ID + " > ? ", 
new String[] { "10000" });

但是当插入新事件时,会生成错误的ID。

我的问题是: 我在哪里可以重置事件ID序列?

谢谢, 此致

1 个答案:

答案 0 :(得分:1)

不要设置ID;以下将做你想要的:

ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();

values.put (Events.CALENDAR_ID, Long.toString(newCalendarId));
values.put (Events.DTSTART, dtStart);
values.put (Events.DTEND, dtEnd);
values.put (Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
values.put (Events.TITLE, title);
Uri uri = cr.insert (Events.CONTENT_URI, values); 

// The returned uri will contain the eventId assigned by Events.