4
在我的應用程序中,我使用CalendarContract API來管理Google日曆上的日曆和事件。將多個活動添加到單個日曆時遇到一些問題。一般來說,這種方法的問題是,每當我向Google日曆添加新事件時,舊事件將被新事件所替代。這裏是我的方法的代碼:無法在Google日曆中插入多個事件
public int addEvent(Context context, String color, int calendarId, String name, String location, String description, Date dateBegin, Date dateEnd) {
long startMillisEpoch;
long endMillisEpoch;
Calendar beginTime = Calendar.getInstance();
beginTime.setTime(dateBegin);
startMillisEpoch = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.setTime(dateEnd);
endMillisEpoch = endTime.getTimeInMillis();
int eventColor;
try {
eventColor = Color.parseColor(color);
} catch (Exception e) {
// Get a random color
Random random = new Random();
eventColor = MyApp.RANDOM_COLORS[random.nextInt(MyApp.RANDOM_COLORS.length)];
}
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.CALENDAR_ID, calendarId);
values.put(CalendarContract.Events.DTSTART, startMillisEpoch);
values.put(CalendarContract.Events.DTEND, endMillisEpoch);
values.put(CalendarContract.Events.TITLE, name);
values.put(CalendarContract.Events.EVENT_LOCATION, location);
values.put(CalendarContract.Events.DESCRIPTION, description);
values.put(CalendarContract.Events.EVENT_COLOR, eventColor);
// NOTE: Every event MUST have a timezone. Otherwise,
// the application will throw an IllegalArgumentException
values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getDisplayName());
// Put default values
values.put(CalendarContract.Events.ALL_DAY, NON_ALL_DAY);
values.put(CalendarContract.Events.GUESTS_CAN_INVITE_OTHERS, 1);
Uri calUri = context.getContentResolver().insert(CalendarContract.Events.CONTENT_URI, values);
if (calUri != null) {
try {
return Integer.parseInt(calUri.getLastPathSegment());
} catch (Exception e) {
return -1;
}
}
return -1;
}
解決這類問題的任何想法?親切的問候。
對不起,我unexperience,但Uri類沒有任何方法 「執行」。首先感謝您的回答。 –
你確定你需要使用'Uri'而不是'Event'嗎?你檢查過相關的api和問題嗎? –
我使用CalendarContract來允許本地日曆。這就是我所需要的。 –