首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除了Location.getAltitude()之外,还有什么方法可以获得高度吗?(我听说过使用传感器)

除了Location.getAltitude()之外,还有什么方法可以获得高度吗?(我听说过使用传感器)
EN

Stack Overflow用户
提问于 2011-09-14 00:43:26
回答 1查看 929关注 0票数 2

除了Location.getAltitude()之外,还有其他方法获得高度吗?我听说过使用传感器,但我没有想法,也无法在网上找到。

UPDATES1我发现SensorManager.getAltitude(float, float)使用API 9,但不知道如何实现它。你能和我们分享一下。

EN

回答 1

Stack Overflow用户

发布于 2012-08-23 06:53:57

我知道现在很晚了,但是对于任何寻找它的人来说,这可能会有帮助。

代码语言:javascript
复制
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;

public class MyActivity extends Activity implements SensorEventListener {

    private SensorManager sensorManager;
    private Sensor sensor;
    private float altitude = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (sensor != null) 
            sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(this);
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}

    @Override
    public void onSensorChanged(SensorEvent event) {
        float presure = event.values[0];
        altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, presure);

        System.out.println("altitude => " + altitude);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7410095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档