Ore*_*reo 14 android calendar android-calendar
我正在遵循这个要点,进入insert
事件Calendar
我如何update
使用下面的代码插入我之前插入的日历事件:
public void addToCalender() throws ParseException {
......
ContentValues event = new ContentValues();
event.put(CalendarContract.Events.CALENDAR_ID, calendarId[0]);
event.put(CalendarContract.Events.TITLE, "Event Title");
event.put(CalendarContract.Events.DESCRIPTION, "Event Description");
event.put(CalendarContract.Events.EVENT_LOCATION, "Eevnt Location");
event.put(CalendarContract.Events.DTSTART, startCalTime);
event.put(CalendarContract.Events.DTEND, endCalTime);
event.put(CalendarContract.Events.STATUS, 1);
event.put(CalendarContract.Events.HAS_ALARM, 1);
event.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
Uri insertEventUri = AddEventActivity.this.getContentResolver().insert(
eventsUri, event);
ContentValues reminders = new ContentValues();
reminders.put(Reminders.EVENT_ID,
Long.parseLong(insertEventUri.getLastPathSegment()));
reminders.put(Reminders.METHOD, Reminders.METHOD_ALERT);
reminders.put(Reminders.MINUTES, 10);
AddEventActivity.this.getContentResolver().insert(remainderUri, reminders);
}
Run Code Online (Sandbox Code Playgroud)
我想知道,我该怎么做:
1. Remove existing event
2. Update existing event
Run Code Online (Sandbox Code Playgroud)
小智 5
以下是修改事件的方法。假设它的 ID 是 eventID:
public void updateEvent(int eventID)
{
ContentResolver cr = context.getContentResolver();
Uri eventUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, eventID);
ContentValues event = new ContentValues();
event.put(CalendarContract.Events.TITLE, "new title");
event.put(CalendarContract.Events.DESCRIPTION, "My cool event!");
cr.update(eventUri, event, null, null);
}
Run Code Online (Sandbox Code Playgroud)
要删除事件,您有两种可能性:
如果您是标准应用程序:使用前面的代码并将所有 event.put 替换为以下代码:
event.put(CalendarContract.Events.DELETED, 1);
如果你是日历的SyncAdapter,想要真正的删除(前面的方法只是说要删除事件,接下来的方法必须在日历同步时使用:
public deleteEvent(Uri eventUri)
{
cr.delete(event, null, null);
}
Run Code Online (Sandbox Code Playgroud)
其中 eventUri 是之前从事件 ID 中获取的事件的 Uri。
对于前面的所有方法,如果您收到有关不在同步适配器中的异常,您可以使用以下方法:
public static Uri asSyncAdapter(Uri uri, String account, String accountType)
{
return uri.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, account)
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, accountType)
.build();
}
Run Code Online (Sandbox Code Playgroud)
我希望这能帮到您。
来源:个人代码+ http://developer.android.com/guide/topics/providers/calendar-provider.html
小智 1
...
Outlook 实际上似乎响应RFC 2446中定义的规则
总之,你必须指定
METHOD:REQUEST
和ORGANIZER:xxxxxxxx
...
请阅读汤姆·卡特的原始答案。
归档时间: |
|
查看次数: |
2370 次 |
最近记录: |