Kod, który pokazałeś jest tylko metodą klasy getLocation
. Przypuszczalnie twoja klasa również implementuje LocationListener
, zgadza się? (Zakładając, że nie, nie widząc go, ponieważ można przypisać „to” w requestLocationUpdates
jako słuchacza.)
zostały pokazane będą tylko kiedykolwiek powrócić ostatniej znanej lokalizacji, ponieważ aktualizacje lokalizacji przez dostawców są asynchroniczny metody. Wskazujesz, że chcesz uzyskać informacje o lokalizacji poprzez rejestrację odbiornika, i że słuchacz otrzymuje okresowo aktualizacje (na podstawie ustawień, które mu podasz, w oparciu o rzeczywiste możliwości urządzenia i okoliczności). NIE otrzymasz lokalizacji od razu po rejestracji.
W przypadku pytania, uzyskanie informacji o lokalizacji, gdy NIE jest połączone z siecią, musisz użyć dostawcy GPS (działa, gdy nie jest podłączony do sieci danych). Po zarejestrowaniu odbiornika odbiornika GPS (jak już masz), otrzymasz aktualizacje lokalizacji przez wywołanie zwrotne w odbiorniku, onLocationChanged(Location location)
.
Do czego służy wywołanie zwrotne w trybie onLocationChanged
?
W ten sposób otrzymasz zaktualizowane informacje o lokalizacji od kilku sekund do kilku minut po zarejestrowaniu dostawcy GPS (jak szybko zależy od sprzętu w używanym urządzeniu i warunków środowiskowych, GPS używa wielu satelitów i działa szybciej z wyraźnym widokiem nieba, może nie działać w ogóle, jeśli jesteś w pomieszczeniu lub sygnał jest w inny sposób zasłonięty).
Oprócz czekania na to, że słuchacz może uzyskać zaktualizowane informacje o lokalizacji, możesz również rozważyć użycie prostszych, oddzielnych metod, aby uzyskać ostatnią znaną lokalizację i zarejestrować się u najlepszego dostawcy. Możesz użyć kilku prostych pętli i interesującego Cię Criteria
(COARSE vs FINE, LOW_POWER lub nie itp.).
Deweloperzy Android udokumentowali to całkiem dobrze w dokumentach, oraz przykładową aplikację "Protips for Location" z otwartym kodem źródłowym i postem "Deep Dive" (zawierającym linki do wszystkich innych zasobów w nim): http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html .
Widząc jak android używa AGPS, nie możesz. –
@Raghav Sood Nie ma sposobu, aby rozwiązać mój problem? –
AGPS oznacza Assisted GPS. W tym module GPS jest wspomagany przez dane pobierane z Internetu. Brak internetu = brak AGPS –