较低的SDK目标时调用较高的API

时间:2012-07-31 22:30:16

标签: android

我的应用支持minSdkVersion = 10并且定位16.如果特定设备支持,我想调用特定于API级别> = 14的方法。我可以在运行时检查运行的OS版本以及是否调用更高级的API方法但是当我指定min SDK版本时,仅存在于高于10的版本中的方法不可见。 有没有办法使用比minSdkVersion更高的API方法?

3 个答案:

答案 0 :(得分:11)

您可以使用以下方法测试设备的API:

if(android.os.Build.VERSION.SDK_INT >= 14) {
    // Do something fancy
}
else {
    // Do something regular
}

答案 1 :(得分:6)

除了检查当前版本之外,您还应该在方法中添加@SuppressLint("NewApi"),以便编译器对此大喊大叫。

答案 2 :(得分:3)

来自更高API的方法是不可见且无法访问的,因为项目的目标SDK低于将要使用的方法的SDK。例如:如果你想使用来自API 14的方法Android项目目标SDK应该至少为14或甚至更好的最新(目前为16)。这有点明显,但我错过了。之后,Sam提供的解决方案正在使用中。