Wysokość otrzymuję zawsze 0. Chcę uzyskać wysokość nad poziomem morza w Androidzie za pomocą GPS.
Mój kod to:
public void onLocationChanged(Location location) {
double lat = (double) (location.getLatitude());
double lng = (double) (location.getLongitude());
double alt = (double) (location.getAltitude());
latitudine = (int) (lat * 1e6);
longitudine = (int) (lng * 1e6);
altitudine = (int) (alt * 1e6);
}
2 odpowiedzi
Czy sprawdziłeś, czy to jest specyficzne dla urządzenia? Pracujesz w emulatorze?
Na początku sprawdziłbym, czy Twoje urządzenie obsługuje wyznaczanie wysokości za pomocą:
LocationManager locationManager; LocationProvider locationProvider;
/* Get LocationManager and LocationProvider for GPS */
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);
/* Check if GPS LocationProvider supports altitude */
locationProvider.supportsAltitude();
Jeśli chcesz wiedzieć, czy lokalizacja ma ustawioną prawidłową wysokość, skorzystaj z następujących wskazówek:
Location location;
/* Get current location from GPS */
location = Location(LocationManager.GPS_PROVIDER);
/* Check if the requested Location has its altitude set */
location.hasAltitude();
Powinieneś sprawdzić, czy lokalizacja zawiera informacje o wysokości: zanim zadzwonisz location.getAltitude()
, po prostu zadzwoń location.hasAltitude()
, aby dowiedzieć się, czy zwrócona lokalizacja zawiera tego typu informacje.
W zależności od dostawcy lokalizacji, z którego korzystasz (SIEĆ lub GPS), może nie obsługiwać określania wysokości. Jeśli masz aplikację, która działa z wysokością, spróbuj znaleźć dostawcę lokalizacji, z którego korzysta.
Jeśli chcesz sprawdzić, czy dany dostawca lokalizacji obsługuje wysokość, najpierw wywołaj LocationManager.getProvider(SensorManager.GPS_PROVIDER)
, aby uzyskać LocationProvider
, a następnie wywołaj metodę locationProvider.supportsAltitude()
.
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.