![](/img/trans.png)
[英]Why does Location.getAltitude() always return zero, at least in the emulator?
[英]Location.getAltitude() starts returning identical values after a certain time period
我需要你的帮助。 我写了一个非常简单的 Android 小部件,它显示了我在 onLocationChanged 方法中得到的高度:
public void onLocationChanged(Location location) {
double myAltitude = -99;
if (location.hasAltitude()) {
myAltitude = location.getAltitude();
Log.d("SAT-LOG","Current Altitude is : "+myAltitude);
Log.d("SAT-LOG","Current Coordinatees : "+location.getLatitude()+"-"+location.getLongitude());
}
...
}
这里我如何请求位置更新:
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.registerGnssStatusCallback(gnssActivity);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 500, 1, gnssActivity);
我也试过这个:
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
criteria.setAltitudeRequired(true);
criteria.setSpeedRequired(true);
criteria.setCostAllowed(true);
criteria.setBearingRequired(false);
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.registerGnssStatusCallback(gnssActivity);
locationManager.requestLocationUpdates(1000,1,criteria,gnssActivity,null);
我注意到 location.hasAltitude() 总是正确的。 10/15 分钟后,该值被卡住: location.getAltitude() 返回相同的值,直到设备重新启动(据记录,我正在使用车载平板电脑)。 相反,位置纬度/经度始终是正确的。 如果我打开 App GPSTest,我会看到正确的高度值。 有人可以帮我理解这个问题吗? 有没有更好的方法来获得高度?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.