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 模拟器中运行良好,但是当我在安卓 4.0 的三星 Galaxy S II 中检查时,它崩溃了,错误日志似乎如下

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

如何纠正这个错误

4

3 回答 3

2

试试using Intent.ACTION_EDIT吧。

于 2012-07-11T11:23:21.740 回答
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);
于 2012-07-11T12:07:29.347 回答
0

您的日历应用程序中可能没有配置任何日历。尝试在设备附带的本机日历应用程序中创建一个事件。如果在创建事件时产生任何错误。

如果,则缺少配置的日历可能是问题所在。

如果,即如果您可以在本机应用程序中成功创建事件,那么您的代码可能存在问题。

但是我在你的代码中注意到的一件事是你没有指定 calendar_id,这个事件应该是在其中创建的。

在日历中创建事件时,Calendar_id 是必填字段。试着把这个东西放在你的代码中。

于 2012-05-19T06:44:02.283 回答