2

我在 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?

你怎么处理?

4

2 回答 2

7

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

伟大的!

现在我想让它与 ICS 一起工作,为此我需要 API 8 中不可用的额外导入。

没问题!由于import语句是在编译时应用的,只要您将项目的构建目标(例如,项目 > 属性 > 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?

那不应该是必要的。

于 2012-06-04T17:12:52.097 回答
1

您想向现有应用程序添加兼容性填充程序,以便它在较低的 API 级别上工作,并且仍然能够从较高级别访问 API。

通常,这样做的方法是隔离在运行时通过反射加载的类中使用更高级别 API 的代码,前提是 API 级别支持它们。

于 2012-06-04T17:10:57.273 回答