Java Android API 8中CalendarContract的替代方案?

Java Android API 8中CalendarContract的替代方案?,java,android,android-calendar,android-event,Java,Android,Android Calendar,Android Event,我的应用程序需要将事件添加到内部电话日历中的功能。在API 14中,可以通过与smth签订日历合同,如以下代码所示。API 8中的替代方案是什么?或者是否可以在代码中检测API,并根据版本打开/关闭此功能 Intent intent = new Intent(Intent.ACTION_INSERT); intent.setType("vnd.android.cursor.item/event"); intent.putExtra(Events.TITLE, "Learn

我的应用程序需要将事件添加到内部电话日历中的功能。在API 14中,可以通过与smth签订日历合同,如以下代码所示。API 8中的替代方案是什么?或者是否可以在代码中检测API,并根据版本打开/关闭此功能

    Intent intent = new Intent(Intent.ACTION_INSERT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra(Events.TITLE, "Learn Android");
    intent.putExtra(Events.EVENT_LOCATION, "Home suit home");
    intent.putExtra(Events.DESCRIPTION, "Download Examples");

    // Setting dates
    GregorianCalendar calDate = new GregorianCalendar(2012, 10, 02);
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
      calDate.getTimeInMillis());
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
      calDate.getTimeInMillis());

    // Make it a full day event
    intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true);

    // Make it a recurring Event
    intent.putExtra(Events.RRULE, "FREQ=WEEKLY;COUNT=11;WKST=SU;BYDAY=TU,TH");

    // Making it private and shown as busy
    intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
    intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
    startActivity(intent); 

正如你所说的,这只在API 14上可用,在API 8上没有其他选择。 过去你能做的最好的事情就是直接访问google日历的web api

因此,一般来说,最好的方法是使用SDK_INT查看API版本,并根据需要启用/禁用该功能