2011-12-23 85 views
2

我正在學習Android,並且一直在研究需要讀取和寫入用戶日曆的應用程序。我非常清楚在Android 4.0(ICS)之前沒有公開的API。但是,早期版本的Android中有'日曆功能'。ICS中新的Android日曆API向後兼容?

我的問題是;現在有官方的公共API,它只能在Android 4.0和未來的版本中使用,還是現在可以在運行早期版本的Android的手機上訪問日曆?在定位早期版本的Android時,新API可以作爲單獨的庫包含在內嗎? [我在Eclipse中工作]如果是這樣,將如何完成?

我想避免使用不符合官方發佈的日曆API的舊非公開方法。

回答

2

它僅適用於Android 4.0和未來版本,還是現在可以訪問運行早期版本Android的手機上的日曆?

它只存在於Android 4.0+。

定位早期版本的Android時,新的API可以作爲單獨的庫包含在內嗎?

沒有,給你以下限制:

我想避免使用不符合正式發佈日曆API老非公開方式。

可想而知 - 雖然遠一些 - 要麼:

  • CalendarContract恰好只是「老非公開辦法」,授予官方地位,或

  • 可以將源代碼轉換爲CalendarContract,並且對於至少一部分功能,修改它以使用舊版本的私有API

後者可能會像ActionBarSherlock那樣工作,它將請求傳遞給Android 4.0+上的本機實現,並在早期版本的Android上使用它自己的實現。

在這兩種情況下,供應商仍有可能修改日曆應用程序,因此CalendarContract不會完全兼容。在我概述的第二種情況下,維護這個兼容性庫的人可能可以實現這種情況下特定於設備的解決方法。

+0

我正在使用喬達時間。查看joda.org。日曆和時間例程適用於從1.5開始的應用程序。我一直在使用的版本提供了一個無法修復的警告,但不會導致Android代碼出現任何問題。我花了大約一天的時間來安裝jar文件。我仍然在學習它所能做的所有事情。 – 2011-12-24 01:11:07

+1

@HowardHodson:OP不是指日期管理,而是指日曆(例如Google日曆)。 – CommonsWare 2011-12-24 01:16:49

+0

感謝馬克,這是有用的,它重新闡述了這個問題更清楚一點。我希望能夠使用新的公共CalendarContract(或包裝它的東西)與預先ICS版本的Android(特別是2.x),而不必維護兩個單獨的apks。事實上,爲日曆API設計的ActionBarSherlock可能就是我正在尋找的東西。良好的領導,謝謝。我很早就掌握了Android編碼的學習曲線,並且可能不會自行構建這樣一個包裝,直到我進一步發展。 – PaulP 2011-12-27 18:46:26