2013-04-16 76 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版本是什麼,並根據需要啓用/禁用該功能。