我在使用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序列?
谢谢, 此致
答案 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.