2012-03-21 3 views
3

는이 코드 제작 :인 텐트를 사용하여 일정 데이터를 보는 방법은 무엇입니까?

long eventID = 208; 
Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID); 
Intent intent = new Intent(Intent.ACTION_VIEW) 
    .setData(uri); 
startActivity(intent); 

나는 이벤트 ID가 정확한지 확인했다을하고 이벤트 제목은보기에서 보여 정확했다.

문제는 1970-1-18 : 00과 같이 올바르지 않은 이벤트 시간입니다.

왜? 누구든지 도와 드릴까요? 감사.

+0

달력 데이터베이스를 쿼리하면이 기능이있는 이유에 대한 통찰력을 얻을 수 있습니다. – JoxTraex

+0

쿼리를 시도했지만 시간 데이터가 정확합니다. –

+0

캘린더의 콘텐츠를 읽는 방법에 대한 코드를 게시 할 수 있습니까? – JoxTraex

답변

4

당신은 이벤트가 의도의 추가 데이터에 & 개시 시간 및 종료 시간을 추가해야합니다 :

intent.putExtra("beginTime", beginMilliTS); 
intent.putExtra("endTime", endMilliTS); 

내가 "시작"과 이벤트 인스턴스의 필드 "끝"에서 값을 사용하여이 작업을 얻었다. 이벤트의 "dtstart"및 "dtend"필드에서도 작동합니다.

+0

+1이 좋은 답변입니다. 그러나이 코드는 반복되는 이벤트를 보려고 할 때 충돌하는 것 같습니다. 이 문제를 해결할 방법을 알고 있습니까? –

+1

크래시가 표시되지 않습니다. reccuring 이벤트를 편집하려면 실제 이벤트를 가져와야합니다. 이벤트 DB가 아닌 인스턴스 DB를 사용하십시오. 그런 다음 event_id, begin, end (이들은 인스턴스 DB의 필드 이름 임)를 사용하여 인 텐트를 설정합니다. – GeH

+0

많은 사람에게 고마워. 원한다면 여기에 답변을 제출하면 받아 들일 것입니다 : http : // stackoverflow.co.kr/questions/13532549/android-calendar-recurring-events-has-wrong-end-date-time –

1

(Android 4.2.2)에는 여전히 동일한 문제가있는 것으로 보입니다. 올바른 행동인가요, 아니면 여기에 누락 된 것이 있습니까?

  1. 은 (PROJ, 말을 시작 Globals.sContext.getContentResolver()) Instances.query 통해 이벤트 ID를 가지고; proj = String [] {Instances.EVENT_ID, Instances.BEGIN, Instances.END ...};

  2. 짝수 아이디를 사용하여 캘린더 앱에서 일정을 봅니다.

이 ( http://developer.android.com/guide/topics/providers/calendar-provider.html에서) 코드로 시도, 여전히 '의도'에 의해 열린 '자세히보기'12 월 (31) 1969 보여줍니다; 캘린더의 '상세보기'에서 이벤트를 클릭하면 '이벤트 편집'양식에 현재 날짜가 표시됩니다.

... 여전히
Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID); 

Intent intent = new Intent(Intent.ACTION_VIEW) 

    .setData(uri); 

startActivity(intent); 

은과도 작동하지 않습니다

intent.putExtra("beginTime", from); 
intent.putExtra("endTime", till); //'from', 'till' is the mills got from the Instances.BEGIN/END fields from the query 

편집 : 다음 코드는 작동 . 유일한 차이점은 정의를 사용하는 것입니다. CalendarContract.EXTRA_EVENT_BEGIN_TIME

Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventId); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(uri); 
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, from); 
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, till); 
startActivity(intent); 
관련 문제