2012-06-04 41 views
1

我在API 8上創建了一個應用程序。現在我想讓它與ICS一起工作,爲此我需要額外的API 8中不可用的導入。 我想添加以下導入:僅在API級別上導入> 15

import android.provider.CalendarContract; 
import android.provider.CalendarContract.Calendars; 
import android.provider.CalendarContract.Events; 

那麼,我必須爲API> 15創建一個不同的應用程序嗎?應用程序的名稱不應更改。

或者,也許可以放置2個應用版本,並根據API級別將minSdkVersion和maxSdkVersion製作成Google Play?

你如何處理?

回答

6

我有一個應用程序的API 8

大創造!

現在我想讓它與ICS工作,爲我需要哪些不可用額外的進口API 8

沒問題!由於import語句在編譯時應用,只要您將項目的構建目標(例如,項目>屬性> Android)設置爲API Level 14或更高版本,您的代碼就可以正常編譯。

那麼,我必須爲API> 15創建一個不同的應用程序嗎?

號只需使用版本後衛塊,以確保您不嘗試使用新代碼,舊設備:

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    // do stuff with CalendarContract 
} 

或者,也許這是可以放置2個應用程序版本,使minSdkVersion和maxSdkVersion根據API級別轉換爲Google Play?

這應該沒有必要。

+0

非常感謝,這對我有很大的幫助。 – user1390816

1

您想添加一個兼容性shim到現有的應用程序,以便它可以在較低的API級別上工作,並且仍然能夠從更高級別訪問API。

通常,執行此操作的方法是隔離在運行時通過反射加載的類中使用較高級API的代碼,僅當API級別支持它們時纔是如此。

+0

謝謝,我會看看反射如何工作。 – user1390816

相關問題