2013-06-04 11 views
3

나는 되풀이 행사에 Events.CONTENT_EXCEPTION_URI (here)이 사용 된 것을 발견했습니다. 인터넷에서 문서 또는 코드 예제를 찾는 것이 거의 없습니다. 그래서 SyncAdapter는 예외 이벤트를 원래 되풀이 이벤트에서 만드시겠습니까?

ContentValues values = new ContentValues(); 
    values.put(Events.ORIGINAL_INSTANCE_TIME, CaldavGlobalVar.getCurrentTime_()); 
    values.put(Events.SELF_ATTENDEE_STATUS, status); 
    if(!username.equals("")){ 
     values.put(Events.ORGANIZER, username); 
    } 
    if(event.getSummarry()!=null){ 
     values.put(Events.TITLE, event.getSummarry()); 
    } 
    if(event.getDescription()!=null){ 
     values.put(Events.DESCRIPTION, event.getDescription()); 
    } 
    if(event.getDateStart()!=null){ 
     values.put(Events.DTSTART, CaldavGlobalVar.convertTIMEtomilisecond(event.getDateStart(), event.getAllDay())); 
    } 


    Uri exceptionUri = Uri. withAppendedPath(Events.CONTENT_EXCEPTION_URI, String.valueOf(event.getEventId())); 
    Uri syncUri = CalendarProvider.asSyncAdapter(exceptionUri, username,context.getResources().getString(R.string.ACCOUNT_TYPE)); 

    Uri resultUri = context.getContentResolver().insert(syncUri, values); 

resultUri는 null, 내가 어떤 예외 또는 관계 사물을 didnot로 나는 여러 가지 방법이

1 삽입하려고, 그래서 (here에서) 안드로이드 소스 코드를 파고 발견 그들이 Events.CONTENT_EXCEPTION_URI를 사용하는 방법은 그래서 라인, this처럼 "ContentProviderOperation"에 의해

2 삽입을 변경 1003

ContentValues values = new ContentValues(); 
    values.put(Events.ORIGINAL_INSTANCE_TIME, CaldavGlobalVar.getCurrentTime_()); 
    values.put(Events.SELF_ATTENDEE_STATUS, 1); 
    values.put(Events.STATUS, Events.STATUS_CONFIRMED); 

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
    Uri exceptionUri = Uri.withAppendedPath(Events.CONTENT_EXCEPTION_URI, 
      String.valueOf(eventId)); 
    ops.add(ContentProviderOperation.newInsert(exceptionUri).withValues(values).build()); 

    mHandler.startBatch(mHandler.getNextToken(), null, CalendarContract.AUTHORITY, ops, 1000); 

그러나 그것은 실패 설치 한 로그를 보여, 나는 나는 내가 해달라고, 나는 또한 안드로이드의 모든 콘텐츠 공급자를 나열 구글이 완전히 지원하지 수 있으며, 그것에 대해 어떤 예외 URI (Events.CONTENT_EXCEPTION_URI)했다 걱정 - content://com.android.calendar/exception

예외 사람이 경험이 있습니까

java.lang.IllegalArgumentException: Unknown URL content://com.android.calendar/exception 

을 throwed? 어떤 도움을

종류는

+0

을, 그래서 나는 예외 이벤트에 의해 slipt에 의해 주위에 작업을 시도하여 관련 "SYNC_DATA"열 ... –

답변

4

내 코드의 작은 부분에 관하여 : 감사 있습니다 : 아무도 내 질문에 대답하지

ContentValues args = new ContentValues(); 
args.put(CalendarContract.Events.ORIGINAL_INSTANCE_TIME, originalinstancetime); 
args.put(CalendarContract.Events.STATUS, status); 
Uri.Builder eventUriBuilder = CalendarContract.Events.CONTENT_EXCEPTION_URI.buildUpon(); 
ContentUris.appendId(eventUriBuilder, originalEventID); 
try { 
    final Uri resultUri = context.getContentResolver().insert(eventUriBuilder.build(), args); 
    int eventID = Integer.parseInt(resultUri.getLastPathSegment()); 
} catch (Exception e) { 
}  
+3

해당 코드를 사용하여 일정이 재발에서 삭제 된 날짜를 어떻게 알 수 있습니까? – Benoit

+0

코드를 설명 할 수 있습니까? – Fiddles

+0

@basvk 안녕하세요 Basvk, 하루에 이벤트 시작 시간과 이벤트 종료 시간을 예외로 삽입하는 것에 대한 아이디어를 공유해주세요. –