Ниже приведен код, который я использую для добавления событий в приложение для 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) }
как исправить эту ошибку
Я попытался следующим образом, и его работала нормально
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);
using Intent.ACTION_EDIT
этого попробуйте using Intent.ACTION_EDIT
.
в вашем приложении календаря не может быть календаря. попробуйте создать событие в собственном приложении календаря, которое было отправлено с устройством. если это порождает любую ошибку при создании события.
если да, то может возникнуть проблема с отсутствием настроенного календаря.
если нет, то есть, если вы могли бы успешно создать событие в своем родном приложении, то, вероятно, в вашем коде есть проблема.
Но одна вещь, которую я заметил в вашем коде, заключается в том, что вы не указали calendar_id, это событие должно быть создано в.
Calendar_id является обязательным полем при создании события в календаре. попробуйте поместить это в свой код.