Android добавление событий календаря вылетает в Android 4.0

1

Ниже приведен код, который я использую для добавления событий в приложение для Android.

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra(Events.TITLE, summary);
intent.putExtra(Events.DESCRIPTION, summary);
intent.putExtra(Events.EVENT_LOCATION, "");     
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginCal.getTimeInMillis());
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endCal.getTimeInMillis());
intent.putExtra(Events.ALL_DAY, allDayFlag);
intent.putExtra(Events.STATUS, 1);
intent.putExtra(Events.VISIBLE, 0);
intent.putExtra(Events.HAS_ALARM, 1);
startActivity(intent);

Этот код хорошо работает в эмуляторе Android 4.0, но когда я зарегистрировался в Samsung Galaxy S II andriod 4.0, он разбился, и журнал ошибок выглядит следующим образом

Error ( 4489): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.INSERT typ=vnd.android.cursor.item/event (has extras) }

как исправить эту ошибку

Теги:
events
calendar
android-4.0

3 ответа

1
Лучший ответ

Я попытался следующим образом, и его работала нормально

ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startTime);
values.put(Events.DTEND, endTime);
values.put(Events.TITLE, summary);
values.put(Events.DESCRIPTION, summary);
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
values.put(Events.EVENT_LOCATION, "");  
values.put(Events.ALL_DAY, allDayFlag);
values.put(Events.STATUS, 1);
values.put(Events.HAS_ALARM, 1);
Uri uri = cr.insert(Events.CONTENT_URI, values);
  • 0
    Можете ли вы опубликовать полный код здесь. Значит, где этот URI будет использоваться в конце концов?
2

using Intent.ACTION_EDIT этого попробуйте using Intent.ACTION_EDIT.

0

в вашем приложении календаря не может быть календаря. попробуйте создать событие в собственном приложении календаря, которое было отправлено с устройством. если это порождает любую ошибку при создании события.

если да, то может возникнуть проблема с отсутствием настроенного календаря.

если нет, то есть, если вы могли бы успешно создать событие в своем родном приложении, то, вероятно, в вашем коде есть проблема.

Но одна вещь, которую я заметил в вашем коде, заключается в том, что вы не указали calendar_id, это событие должно быть создано в.

Calendar_id является обязательным полем при создании события в календаре. попробуйте поместить это в свой код.

  • 0
    если календарь не настроен, то откроется страница событий с окном предупреждения, в котором говорится «Добавить учетную запись». Но в моем случае приложение зависало при попытке открыть события, и я разместил журнал ошибок ....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню