【发布时间】:2015-10-11 01:27:44
【问题描述】:
我一直在尝试实现一项功能,以根据 Android Galaxy S5 手机的气压计传感器获取正确的高度。唯一的问题是,我认为它不准确。根据我特定位置的http://www.whatismyelevation.com,它显示我的海拔高度约为 114 米。但是,在我的手机上,根据气压计传感器显示它是 210 米。然而,我在一座高楼里,但我不认为它有 100 米高。
这是我的简单代码:
@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));
}
谢谢!
【问题讨论】:
-
100m = 30 层左右。无论如何,气压取决于天气,在室内不是很准确。我怀疑你可以用它来可靠地确定高度。
-
这里有一些额外的资源:@987654322@stackoverflow.com/questions/17871735/…我建议谷歌搜索查询android中的气压计校准。我发现由于它对天气的依赖性,很难保持特定的校准。
标签: java android geolocation altitude