【发布时间】:2012-07-31 22:30:16
【问题描述】:
我的应用支持 minSdkVersion=10 和目标 16。如果特定设备支持,我想调用特定于 API 级别 >= 14 的方法。我可以在运行时检查正在运行的操作系统版本以及是否调用更高的 API 方法,但是当我指定最小 SDK 版本时,仅存在于高于 10 的版本中的方法不可见。 有没有办法使用比 minSdkVersion 更高的 API 方法?
【问题讨论】:
标签: android
我的应用支持 minSdkVersion=10 和目标 16。如果特定设备支持,我想调用特定于 API 级别 >= 14 的方法。我可以在运行时检查正在运行的操作系统版本以及是否调用更高的 API 方法,但是当我指定最小 SDK 版本时,仅存在于高于 10 的版本中的方法不可见。 有没有办法使用比 minSdkVersion 更高的 API 方法?
【问题讨论】:
标签: android
您可以使用以下方法测试设备的 API:
if(android.os.Build.VERSION.SDK_INT >= 14) {
// Do something fancy
}
else {
// Do something regular
}
【讨论】:
除了检查当前版本之外,您还应该将@SuppressLint("NewApi")添加到您的方法中,以便编译器对其大喊大叫。
【讨论】:
来自更高 API 的方法是不可见和不可访问的,因为项目的目标 SDK 低于将要使用的方法的 SDK。例如:如果您想使用 API 14 中的方法,Android 项目目标 SDK 至少应为 14 甚至更好(当前为 16)。这很明显,但我错过了。之后 Sam 给出的解决方案正在使用中。
【讨论】: