在Android 2.2模拟器上,“地理修复”命令似乎无法正常工作。仿真器响应“确定”,并且在我的程序中正确调用了onLocationChanged()
。但是,Location
对象似乎并不完整-它可以很好地记录纬度和经度,但是它不包含海拔高度读数:hasAltitude()
返回false
。
有什么想法吗?
模拟器命令示例:
geo fix -74 40.75 500
geo fix -77 39 400.0
程式码 fragment :
public void onLocationChanged(Location loc) {
System.out.println("onLocationChanged Called");
if (loc.hasAltitude()) {
double newalt = loc.getAltitude();
System.out.println("new altitude: " + newalt);
gps[ALTITUDE] = newalt;
} else {
System.out.println("No altitude fix");
}
gps[LONG] = loc.getLongitude();
System.out.println(gps[LONG]);
gps[LAT] = loc.getLatitude();
System.out.println(gps[LAT]);
}
样本输出:
onLocationChanged Called
No altitude fix
-74.012333333333333333
40.756666666666666667
onLocationChanged Called
No altitude fix
-77.012833333333333335
39.006499999999999996
最佳答案
这是模拟器中的错误,已在https://code.google.com/p/android/issues/detail?id=24809中报告