J'ai implémenté une classe en Java (Android) pour calculer l'altitude de l'appareil et je veux accéder à cette valeur depuis une autre classe.La valeur retournée par le capteur est toujours 0
La première classe est la suivante:
public class DeviceAltitudeHandler extends Activity implements SensorEventListener{
SensorManager sm;
Sensor sensor;
float altitude ;
public DeviceAltitudeHandler(SensorManager sm, float altitude) {
super();
this.sm = sm;
this.altitude = altitude;
sensor = sm.getDefaultSensor(Sensor.TYPE_PRESSURE);
sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_UI);
}
@Override
public void onSensorChanged(SensorEvent event) {
float [] values = event.values;
altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE,values[0]);
}
public float getAltitude() {
return altitude;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void start() {
sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_UI);
}
public void stop() {
sm.unregisterListener(this);
}
}
J'utilise un vrai smartphone qui intègre un baromètre, mais la valeur retournée est toujours 0 !!! et le code de la seconde classe est:
public class TestActivity extends Activity {
TextView tv;
DeviceAltitudeHandler dah;
float altitude;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
tv = (TextView) findViewById(R.id.textView5);
SensorManager sm = (SensorManager) getSystemService(Service.SENSOR_SERVICE);
dah = new DeviceAltitudeHandler(sm,altitude);
tv.setText(""+dah.getAltitude());
}
@Override
protected void onResume() {
super.onResume();
dah.start();
}
@Override
protected void onPause() {
super.onPause();
dah.stop();
}
}
Merci à l'avance.
Merci pour votre réponse rapide. Le problème est avec la méthode onSensorChanged, n'est pas appelé et la valeur retournée est toujours 0 (la valeur initiale). – Wima
En fait, le problème est avec la méthode "getAltitude()", elle ne retourne pas la valeur de l'altitude. – Wima
@Wima vous pouvez vérifier ce lien http://stackoverflow.com/questions/7410095/android-is-there-a-way-to-obtain-altitude-aside-from-location-getaltitude-i et de comparer avec votre code peut-être que vous avez fait une erreur –