2

我的应用程序需要将事件添加到内部电话 Caledar 的功能。在 API 14 中,可以通过 CalendarContract 和下面的代码一样。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); 
4

1 回答 1

1

正如您所说,这仅在 API 14 上可用,并且在 API 8 上没有其他选择。过去您能做的最好的事情就是直接访问谷歌日历的 web-api。

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

于 2013-04-16T12:58:05.610 回答