【问题标题】:Writing ICS Android apps which are backwards compatible编写向后兼容的 ICS Android 应用程序
【发布时间】:2012-07-08 16:08:46
【问题描述】:

我正在编写一个添加日历事件的应用程序。

对于 ICS 之前的操作系统版本,我需要使用不受支持且可能会更改的 contentResolver 查询。

对于 ICS,执行此类操作的 API 是使用 CalendarContract 提供程序。因此,我计划检测 OS API 版本,并为 pre ICS OS 和 ICS 使用适当的方法。

在我的清单中,我有以下内容来支持 Android 2.1 到 4.x:

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

但是除非我将 minSdkVersion 设置为 14,否则无法导入 CalendarContract,这使得在 ICS 之前运行任何程序的任何人都无法访问该应用。

如何在配备 ICS 的手机上添加对新操作系统功能的支持的同时支持旧版本的操作系统?

我是否要创建两个版本的应用并将两个版本都上传到市场?用户会看到适合其操作系统的版本吗?

【问题讨论】:

  • 在适用于 Android 的 SMS Backup Plus 应用程序中提供了此功能的实现,该应用程序是开源的,可在 github 上获得。这是我添加了相应功能的分支,您还可以查看主项目以获取类似的实现。 github.com/QuintinRobinson/sms-backup-plus/blob/…

标签: android calendar android-4.0-ice-cream-sandwich


【解决方案1】:

这是你可以做的事情:

将 minSDK 版本设置为 2.1,将目标版本设置为 ICS。

然后,在项目的属性中,针对 ICS (android 4.0) 构建..

这样,您将针对 4.0 进行构建,它将包含您在 ICS 中所需的功能,但您仍将支持 android 2.1

只要你在 2.1 上运行时不调用任何 ICS API(如果你这样做,你会得到 classnotfound 异常),你会没事的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多