2013-04-16 53 views
2

我的应用程序需要将事件添加到内部手机Caledar的功能。在API 14中,可以通过CalendarContract和下面的代码一起使用。什么是API 8的替代方案?或者是否有可能在代码中检测API,并根据版本将此开启/关闭?Android API 8中CalendarContract的替代方案?

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); 

回答

1

正如你说,仅在14 API可用,还有对API 8 你可以在过去做的是直接访问Web的API的谷歌日历的最佳别无选择。

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