今天繼續講android的日曆事件ContentProvider,講添加事件。
以下是android developer官網的講解:
添加事件
當您的應用插入新事件時,我們建議您按照使用 Intent 插入事件中所述使用 INSERT Intent。不過,您可以在需要時直接插入事件。 本節描述如何執行此操作。
以下是插入新事件的規則:
- 您必須加入 CALENDAR_ID 和 DTSTART。
- 您必須加入 EVENT_TIMEZONE。如需獲取系統中已安裝時區 ID 的列表,請使用 getAvailableIDs()。 請注意,如果您按使用 Intent 插入事件中所述通過 INSERT Intent 插入事件,則此規則不適用 — 在該情形下,系統會提供默認時區。
- 對於非重複事件,您必須加入 DTEND。
- 對於重複事件,您必須加入 DURATION 以及 RRULE 或 RDATE。請注意,如果您按使用 Intent 插入事件中所述通過 INSERT Intent 插入事件,則此規則不適用 — 在該情形下,您可以將 RRULE 與 DTSTART 和 DTEND 結合使用,日曆應用會自動將其轉換爲持續時間。
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 9, 14, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 9, 14, 8, 45);
endMillis = endTime.getTimeInMillis();
...
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startMillis);
values.put(Events.DTEND, endMillis);
values.put(Events.TITLE, "Jazzercise");
values.put(Events.DESCRIPTION, "Group workout");
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uri = cr.insert(Events.CONTENT_URI, values);
// get the event ID that is the last element in the Uri
long eventID = Long.parseLong(uri.getLastPathSegment());
//
// ... do something with event ID
//
//
注:請注意以上示例如何在事件創建後捕獲事件 ID。 這是獲取事件 ID 的最簡單方法。您經常需要使用事件 ID 來執行其他日曆操作 — 例如,向事件添加參加者或提醒。