В эмуляторе Android 2.2 команда "geo fix" работает неправильно.Эмулятор отвечает "ОК", и в моей программе правильно вызывается onLocationChanged()
.Тем не менее, объект Location
, кажется, не завершен - он отлично регистрирует широту и долготу, но не содержит показания высоты: hasAltitude()
возвращает false
.
Есть идеи почему?
Пример команд эмулятора:
geo fix -74 40.75 500
geo fix -77 39 400.0
Фрагмент кода:
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