以下是我用来在我的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模拟器中运行良好但是当我在三星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) }
如何纠正此错误
答案 0 :(得分:2)
请尝试using Intent.ACTION_EDIT
。
答案 1 :(得分: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);
答案 2 :(得分:0)
您的日历应用程序中可能没有配置任何日历。尝试在设备随附的本机日历应用中创建活动。如果在创建事件时生成任何错误。
如果是,则可能不存在配置日历。
如果没有,即如果您可以在原生应用中成功创建活动,那么您的代码可能存在问题。
但我在你的代码中注意到的一件事是你没有指定calendar_id,这个事件应该是在。中创建的。
在日历中创建活动时,Calendar_id是必填字段。尝试将这个东西放在你的代码中。