Próbowałem wprowadzić funkcję, aby uzyskać odpowiednią wysokość na podstawie czujnika barometru z telefonów z Androidem Galaxy S5. Jedynym problemem jest to, że nie uważam, że jest to dokładne. Opierając się na http://www.whatismyelevation.com na mojej konkretnej lokalizacji, pokazuje, że moja wysokość wynosi około 114 metrów. Jednak na moim telefonie pokazuje, że jest to 210 metrów w oparciu o czujnik barometru. Jestem jednak w wysokim budynku, ale nie sądzę, że ma 100 metrów wysokości.Czytanie wysokościomierza z Androidem jest nieprawidłowe?
Oto mój prosty kod:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.configure_settings);
context = getApplicationContext();
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensors = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);
if (sensors.size() > 0)
{
sensor = sensors.get(0);
mSensorManager.registerListener(this, sensor,
SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
public void onSensorChanged(SensorEvent event)
{
float pressure = event.values[0];
altitude = String.valueOf(SensorManager.getAltitude(
SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure));
}
Dzięki!
100m = 30 piętra, lub w tej okolicy. Bez względu na to, ciśnienie barometryczne zależy od warunków pogodowych i niezbyt dokładnych w pomieszczeniach. Wątpię, czy możesz go użyć do niezawodnego określenia wysokości. – 323go
Oto niektóre dodatkowe zasoby: http://stackoverflow.com/questions/23581378/how-to-getometric-altitude-in-android http://stackoverflow.com/questions/17871735/android- how-does-one-deal-with-niedokładne-baromtery Proponuję wyszukiwanie google, aby dowiedzieć się o kalibracji barometru w systemie Android. Odkryłem, że ze względu na zależność od pogody trudno jest utrzymać określoną kalibrację. – CubeJockey