Android: есть ли способ получить высоту, кроме Location.getAltitude ()? (Я слышал, используя датчик) - PullRequest
2 голосов
/ 14 сентября 2011

Есть ли способ получить высоту помимо Location.getAltitude ()? Я слышал, используя датчик, но не имею понятия и не могу найти в сети.

UPDATES1 Я обнаружил SensorManager.getAltitude(float, float) с использованием API Level 9, но не знаю, как его реализовать. Не могли бы вы поделиться с нами.

1 Ответ

2 голосов
/ 23 августа 2012

Я знаю, что уже поздно, но для тех, кто ищет это, это может помочь

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...