Как использовать намерения для просмотра данных календаря? - PullRequest
3 голосов
/ 21 марта 2012

Я сделал этот код:

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

Я удостоверился, что EventID был правильным, и заголовок события, показанный в представлении, был правильным.

ПРОБЛЕМА - неправильное время события, например: 1970-1-1 8: 00.

Почему? Кто-нибудь может помочь? Спасибо.

Ответы [ 3 ]

4 голосов
/ 22 апреля 2012

Вы должны добавить время начала и окончания события к дополнительным данным намерения:

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

Я получил это с помощью значений из полей «начало» и «конец» экземпляра события. Это также должно работать с полями "dtstart" и "dtend" из события.

1 голос
/ 20 ноября 2013

на Android 4.2.2, кажется, все еще с той же проблемой.Это правильное поведение или что-то здесь отсутствует?

  1. получил идентификатор события через Instances.query (Globals.sContext.getContentResolver (), proj, begin, end);proj = String [] {Instances.EVENT_ID, Instances.BEGIN, Instances.END ...};

  2. использовать четный идентификатор для просмотра события в приложении календаря.

пробовал с кодом (из http://developer.android.com/guide/topics/providers/calendar-provider.html), он по-прежнему показывает 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);
1 голос
/ 21 марта 2012
...