2013-01-15 3 views
1

이 코드를 사용하면 팀원이 캘린더 일정을 추가하고 있습니다. 이 문제없이 작동합니다. 캘린더 일정은 Google 캘린더에 표시됩니다.아이디로 캘린더 일정을 추가하고 아이디로 캘린더 일정을 삭제하는 방법은 무엇입니까? (Android 4.0)

TimeZone timeZone = TimeZone.getDefault(); 
     ContentResolver cr = getContentResolver(); 
     ContentValues values = new ContentValues(); 
     values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID()); 
     values.put(CalendarContract.Events.DTSTART, startInMillis); 
     values.put(CalendarContract.Events.DTEND, endInMillis); 
     values.put(CalendarContract.Events.TITLE, title); 
     values.put(CalendarContract.Events.EVENT_LOCATION, "Raum: " + location); 
     values.put(CalendarContract.Events.DESCRIPTION, 
       "Dauer der Veranstaltung: " + duration + " min" + "---|---Dozent: " 
         + organizer.trim() + "---|---Course added by UNIDATE---|"); 
     values.put(CalendarContract.Events.CALENDAR_ID, 1); 
     Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values); 
     ContentUris.withAppendedId(uri, id); 

하지만 이제이 ID로 이벤트를 삭제하고 싶습니다. 나는이 코드를 사용했다. (다른 사람들 사이에서) :

long selectedEventId = 1; 
String[] selArgs = new String[]{Long.toString(selectedEventId)}; 
int deleted = getContentResolver().delete(CalendarContract.Events.CONTENT_URI, Events._ID + " =? ", selArgs); 

이것은 작동하지 않는다. 또한 추가하려고했습니다.

values.put(CalendarContract.Events._ID, id); 
+0

deleteUri = ContentUris.withAppendedId (Events.CONTENT_URI, 이벤트 ID); int rows = getContentResolver(). delete (deleteUri, null, null); – sam

+0

http://developer.android.com/guide/topics/providers/calendar-provider.html ... 가능합니까? – sam

+0

나는 지금 시험해보고 – Mladen

답변

0

간단한 해결 방법은 먼저 일정 이벤트를 지우고 관련 이벤트를 추가하는 것입니다. 달력 이벤트 지우기

이를 호출하여 수행 할 수 있습니다

context.getContentResolver().delete(CalendarContract.Events.CONTENT_URI, CalendarContract.Events.CALENDAR_ID + " = ?", new String[]{String.valueOf(calendarId)}); 
관련 문제