Android:除了 Location.getAltitude() 之外,还有其他方法可以获取高度吗?(我听说过使用传感器) [英] Android: Is there a way to obtain altitude aside from Location.getAltitude()? (I've heard using Sensor)

查看:30
本文介绍了Android:除了 Location.getAltitude() 之外,还有其他方法可以获取高度吗?(我听说过使用传感器)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

除了 Location.getAltitude() 之外,还有其他方法可以获取高度吗?我听说过使用 Sensor 但不知道并且在网上找不到.

Is there a way to obtain altitude aside from Location.getAltitude()? I've heard using Sensor but don't have idea and can't find on net.

更新 1我发现 SensorManager.getAltitude(float, float) 使用 API 级别 9,但不知道如何实现它.你愿意与我们分享吗.

UPDATES1 I found SensorManager.getAltitude(float, float) using API Level 9 up but don't have idea on how to implement it. Would you share with us.

推荐答案

我知道为时已晚,但对于任何正在寻找它的人来说,这可能会有所帮助

I know it's late but for anyone looking for it, that might help

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);
    }
}

这篇关于Android:除了 Location.getAltitude() 之外,还有其他方法可以获取高度吗?(我听说过使用传感器)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆