Android, как получить высоту в LocationManager. Я все равно получаю нуль

Я пытаюсь получить текущую высоту из метода location.getAltitude (). Но он всегда возвращает ноль. Что я должен сделать, чтобы получить текущее значение высоты. Но правильная долгота и долгота. Пожалуйста, советую мне. Я искал в google и выработал некоторые образцы, но все они возвращают только ноль.

Код, который я использовал:

In on create я вызвал = getMyCurrentLocation (); Этот метод.

void getMyCurrentLocation() { LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); LocationListener locListener = new MyLocationListener(); try{gps_enabled=locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);}catch(Exception ex){} try{network_enabled=locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);}catch(Exception ex){} if(gps_enabled){ locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); } if(network_enabled){ locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener); } if(gps_enabled){ location=locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); } if(network_enabled && location==null) { location=locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); } if (location != null) { MyLat = location.getLatitude(); MyLong = location.getLongitude(); Toast.makeText(this,"My Lat : " + MyLat + "\n" + "My Long : " + MyLong, Toast.LENGTH_SHORT).show(); } else { } System.out.println(" LATTITUDE " + MyLat); System.out.println("Longitude " + MyLong); } public class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location loc) { MyLat =loc.getLatitude(); MyLong= loc.getLongitude(); gooalt=getElevationFromGoogleMaps(MyLat,MyLong) ; double alt=loc.getAltitude(); **==>>> This one returns ZERO** String Text = "Longitud = " + (loc.getLongitude()) +"Latitud = " + loc.getLatitude()+"Altitude "+gooalt+"feet"; Toast.makeText( getApplicationContext(),Text,Toast.LENGTH_SHORT).show(); } @Override public void onProviderDisabled(String provider) { Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT ).show(); } @Override public void onProviderEnabled(String provider) { Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } } 

Какой метод вы использовали для получения местоположения? Возможно, вы могли бы попробовать http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation(java.lang.String ) вместо этого, это сработало для меня.

Если нет, попробуйте другой подход, есть несколько: http://developer.android.com/guide/topics/location/index.html

Кстати: мог бы вы дать нам какой-то код? На каком устройстве вы тестируете?

Расположение сети не имеет высоты. GPS делает, но если вы всегда получаете 0, то, вероятно, ваше оборудование GPS сломано. Отключите настройку местоположения сети на своем телефоне и попробуйте приложение «Карта», чтобы узнать, не исправите ли вы GPS.

Я WONDER, почему он не получает значение высоты, ваш CODE IS CORRECT.TRY, чтобы УДАЛИТЬ networkprovider и проверить код только в gps, видит, что он получает какие-либо значения, если вы столкнулись с какой-либо проблемой, пожалуйста, сообщите мне в коде, где вы показываете Высоту, можете ли вы выделить его. Если вы используете String Text = «Longitud =» + (loc.getLongitude ()) + «Latitud =» + loc.getLatitude () + «Высота» + gooalt + «ноги»; Для высоты его неправильная попытка использовать loc.getAltitude () вместо gooalt