2012-04-10 73 views
2

我正在編寫添加日曆事件的應用程序。向後兼容編寫ICS Android應用程序

對於ICS之前的操作系統版本,我需要使用contentResolver查詢,這些查詢不受支持且可能會更改。

有了ICS,做這類事情的API就是使用CalendarContract提供程序。所以我打算檢測OS API版本,併爲ICS OS和ICS使用適當的方法。

在我的表現,我有以下支持Android 2.1到4.x版:

uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" 

但CalendarContract不可用進口,除非我設置minSdkVersion到14,這使得應用程序無法訪問任何人在ICS之前運行任何事情。

如何在使用ICS的手機中添加對新操作系統功能的支持時如何支持較早版本的操作系統?

我是否創建兩個版本的應用程序並上傳到市場?用戶是否會看到適合他們操作系統的版本?

+0

在Android的SMS Backup Plus應用程序中提供了此功能的實現,該應用程序是開源的,可在github上使用。這是我添加了相應功能的fork,您也可以查看類似實現的主項目。 https://github.com/QuintinRobinson/sms-backup-plus/blob/4f321d547e1db4c62000d7db81525ac668df8c97/src/com/zegoggles/smssync/CalendarHelper.java – 2012-04-10 21:28:29

回答

3

這是你可以做什麼,使這項工作:

有minSDK版本設置爲2.1和目標版本ICS。

然後,在項目的性質,建立針對ICS(Android 4.0版本)..

這樣,你正在建立針對4.0,其中將包括您在ICS需要的功能,但你還是會支持Android 2.1

只要您在2.1版本上運行時不會調用任何ICS API(如果您這樣做,您將得到classnotfound異常),那麼您將會很好。