将事件添加到日历API 7

时间:2014-01-31 11:36:44

标签: android api events calendar add

如何使用带有API 7的手机向日历添加活动?

以下是我的尝试,但它不起作用:

Intent intent = new Intent(Intent.ACTION_INSERT)
                .setData(CalendarContract.Events.CONTENT_URI)
                .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, begincalendar.getTimeInMillis())
                .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endcalendar.getTimeInMillis())
                .putExtra(CalendarContract.Events.TITLE, "test")
                .putExtra(CalendarContract.Events.DESCRIPTION, "describe")
                .putExtra(CalendarContract.Events.EVENT_LOCATION, "place")
                .putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY,true);

startActivity(intent);

2 个答案:

答案 0 :(得分:1)

尝试以下解决方案。

Intent intent = new Intent(Intent.ACTION_INSERT)
                .setType("vnd.android.cursor.item/event")
                .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
                .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());

activity.startActivityForResult(intent, 100);

答案 1 :(得分:1)

试试这会有所帮助......

  Calendar beginTime = Calendar.getInstance();
        beginTime.set(yearInt, monthInt - 1, dayInt, 7, 30);



        ContentValues l_event = new ContentValues();
        l_event.put("calendar_id", CalIds[0]);
        l_event.put("title", "event");
        l_event.put("description",  "This is test event");
        l_event.put("eventLocation", "School");
        l_event.put("dtstart", beginTime.getTimeInMillis());
        l_event.put("dtend", beginTime.getTimeInMillis());
        l_event.put("allDay", 0);
        l_event.put("rrule", "FREQ=YEARLY");
        // status: 0~ tentative; 1~ confirmed; 2~ canceled
        // l_event.put("eventStatus", 1);

        l_event.put("eventTimezone", "India");
        Uri l_eventUri;
        if (Build.VERSION.SDK_INT >= 8) {
            l_eventUri = Uri.parse("content://com.android.calendar/events");
        } else {
            l_eventUri = Uri.parse("content://calendar/events");
        }
        Uri l_uri = MainActivity.this.getContentResolver()
                .insert(l_eventUri, l_event);