无法通过android中的意图插入日历事件

时间:2013-01-13 13:40:20

标签: android google-calendar-api

我在HTC(v2.3.3)中收到此错误并在Galaxy s3(v4.1)中运行

Intent intent = new Intent(Intent.ACTION_EDIT)
            .setData(Uri.parse(EventUtils.EVENT_URI))
            .putExtra(Event.EXTRA_EVENT_BEGIN_TIME,
                    beginTime.getTimeInMillis())
            .putExtra(Event.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis())
            .putExtra(
                    Event.TITLE,
                    Utils.getPref(getApplicationContext(),
                            Constant.PREF_EVENT_TAG,
                            Constant.CONST_EVENT_TAG)
                            + "Meeting")
            .putExtra(Event.DESCRIPTION, "important meeting")
            .putExtra(Event.AVAILABILITY, Events.AVAILABILITY_BUSY);
    // .putExtra(Event.EVENT_LOCATION, "The gym")
    // .putExtra(Intent.EXTRA_EMAIL,
    // "rowan@example.com,trevor@example.com");

    if (calID != -1) {
        intent.putExtra(Event.CALENDAR_ID, calID);
    }

    startActivity(intent);

异常

01-13 18:58:59.417: E/AndroidRuntime(31730): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.EDIT dat=content://com.android.calendar/events (has extras) }

如何解决?

2 个答案:

答案 0 :(得分:1)

你对HTC有什么Android版本? - 我认为日历缩进仅适用于Android 4以后。

修改

您使用的内容以及How to set a reminder in Android?使用的内容,是一种添加日历事件的非官方方式,根据各种Android实施和设备,这将有效或无效。

从Android 4(API Level 14)开始,有一种正式的方法,使用CalendarProvider

答案 1 :(得分:0)

最可能你为你的意图设置了错误的数据...在Intent.setData()方法中检查你的Uri参数....

此外,你应该使用try / catch包围它,因为一些禁用/卸载日历应用程序的用户可能在启动该意图时关闭力