尝试将新事件插入日历时出错

时间:2012-04-15 11:04:17

标签: android calendar

我正在尝试向日历添加新事件(min sdk version为2.2) 这是我到目前为止的代码:

ContentValues event = new ContentValues();

event.put("calendar_id", 2);
event.put("title", "mytitle");
event.put("description", "desc");
event.put("eventLocation", "loc");
event.put("eventTimezone", Calendar.getInstance().getTimeZone().getDisplayName());

long startTime = System.currentTimeMillis() + 1000 * 60 * 60;
Long duration = 1000L * 60 * 30;

event.put("dtstart", startTime);
event.put("duration", duration);

Uri eventsUri = Uri.parse("content://com.android.calendar/events");
Uri insertedUri = getContentResolver().insert(eventsUri, event);

insertedUri始终为空 我也可以在我的logcat中看到该行:

Failed to find provider info for calendar  

任何人都可以帮助我吗? 感谢。

3 个答案:

答案 0 :(得分:0)

Android中有默认日历。因此,它始终无法找到提供者。这就是为什么之前没有公共API的原因。您必须为ex,Google日历安装日历应用程序。对于其他热门派对应用,请浏览他们的apis。

答案 1 :(得分:0)

我在here找到了答案 感谢

答案 2 :(得分:0)

你也可以试试这个,

public static void addToCalendar(Context ctx, final String title,
            final long dtstart, final long dtend, final String location) {

        Intent intent = new Intent(Intent.ACTION_EDIT);
        intent.setType("vnd.android.cursor.item/event");
        intent.putExtra("beginTime", dtstart);
        intent.putExtra("allDay", false);
        intent.putExtra("rrule", "FREQ=YEARLY");
        intent.putExtra("endTime", dtend);
        intent.putExtra("title", title);
        intent.putExtra("eventLocation", location);
        ctx.startActivity(intent);
    }