2011-09-14 10 views
2

Location.getAltitude()を除いて標高を取得する方法はありますか? 私はSensorを使用して聞いたことがありますが、ネット上で見つけることはできません。Android:Location.getAltitude()を除いて標高を取得する方法はありますか? (センサーを使用していると聞いたことがあります)

UPDATES1 私はAPIレベル9を使用してSensorManager.getAltitude(float, float)が見つかりましたが、それを実装する方法についてのアイデアを持っていません。あなたは私たちと分かち合いますか?

答えて

2

私はそれが後半だ知っているが、それを探している人のために、それは

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

これを助けるかもしれない...完全に動作しますが、Location.getAltitude()は常に0を返し、なぜ私はまだわからないのですか? – rrbrambley

関連する問題