Android:如何调用其他 API 级别中存在的方法?

标签 android android-sensors altitude

我有一个使用 Android 2.1 的应用程序,它利用 LocationManager 获取高度。但是现在,我需要使用需要 API 级别 9 (2.3) 的 SensorManager 获取海拔高度。

如何通过放置条件并通过函数名称调用它(可能在普通 Java 中)将 SensorManager.getAltitude(float, float) 放入我的 2.1 android 应用程序?

提前致谢

更新 1 如果您注意到我的应用程序需要使用 Android 2.1 进行编译。这就是为什么我正在寻找一种方法来按名称或以任何其他可以编译的方式调用函数。

最佳答案

您需要针对您需要的最高 API 进行构建,然后有条件地为您想要支持的其他级别编写备用代码路径

要在执行时检查当前 API 级别,Android 文档的最新建议是执行如下操作:

    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD)
    {
        ...

不过,一旦引入这种复杂性,就必须非常小心。目前没有自动检查所有代码路径的方法,以确保所有高于 minSdkVersion 的 api 级别调用都有替代调用来支持所有版本。如果存在可以执行类似操作的单元测试工具,也许有人可以插话。

关于Android:如何调用其他 API 级别中存在的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410143/

相关文章:

android - 不再需要 ActivityManager - 不是服务问题

java - MongoClient 是抽象的,无法实例化

android - 如果满足陀螺仪读数等条件,如何获得时间

javascript - Cordova 地理定位 --- 海拔高度不起作用

java - 访问 apk 中所有显示的字符串

java - 为什么 TYPE_ROTATION_VECTOR 传感器返回空值?

android - AccelerationSensor.accelerationchanged()使应用变慢

ios - CLLocation altitude 属性在飞行中的有效性

android - 如何从平均海平面计算海拔高度

Android - ScrollView 和 PercentRelativeLayout