仅在API级别上导入> 15

时间:2012-06-04 17:04:41

标签: android

我在API 8上创建了一个应用程序。现在我想让它与ICS一起使用,为此我需要API 8中没有的其他导入。 我想添加以下导入:

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

所以我必须为API而制作一个不同的应用程序> 15?应用程序的名称不应更改。

或者也许可以放置2个App版本并根据API级别将minSdkVersion和maxSdkVersion制作成Google Play?

你是如何处理的?

2 个答案:

答案 0 :(得分:7)

  

我在API 8上创建了一个应用程序。

大!

  

现在我想让它与ICS一起使用,为此我需要API 8中没有的其他导入。

没问题!由于import语句在编译时应用,只要您将项目的构建目标(例如,Project> Properties> Android)设置为API级别14或更高级别,您的代码就可以正常编译。

  

所以我必须为API而制作一个不同的应用程序> 15?

没有。只需使用版本保护块,以确保您不要尝试在旧设备上使用较新的代码:

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

或者也许可以放置2个App版本并根据API级别将minSdkVersion和maxSdkVersion制作成Google Play?

这不应该是必要的。

答案 1 :(得分:1)

您希望为现有应用添加兼容性填充程序,以便它可以在较低的API级别上运行,并且仍然可以从更高级别访问API。

通常,执行此操作的方法是隔离在运行时通过反射加载的类中使用更高级API的代码,只有在API级别支持它们时才会这样做。