Gps nie zawsze zwraca lokalizację, nawet jeśli jest dostępna przez aplet FusedLocationProvider lub LocationManager LocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
. Zwłaszcza, jeśli przebywasz w budynku, jest mniej prawdopodobne, że dostaniesz lokalizację z GPS w zależności od układu Gps Twojego urządzenia. Gps musi zostać naprawiony, aby zwrócić lokalizację.
Możesz napisać aplikację testową, która ma LocationManager z Gps, WiFi i GpsStatusListener, aby sprawdzić liczbę satelitów, satelity w fixie i siłę sygnału satelitarnego i porównać ją z FusedLocationProvider w tym samym czasie i dodać dostarczone lokalizacje do mapy jako markery. Możesz również wyszukać dla FLP Location.getExtras(), która może zawierać informacje o satelitach. Nawet jeśli GPS LocationManager jest dostępny, a liczba satelitów to 2, nie mogę uzyskać lokalizacji z GPS.
Witaj, świecie na obrazie powinna być lokalizacja GPS, ale nie jest ona zwracana, ponieważ nie została jeszcze naprawiona. Testowanie może nie rozwiązać problemu, ale można porównać sytuacje, w których znajduje się lokalizacja, lub nie można na przykład użyć 3 satelitów do uzyskania lokalizacji z GPS lub minimalnej siły sygnału. Zablokowanie Gps może zająć zbyt wiele czasu, a stan na GpsStatusListener
jest ustawiony na GpsStatus.GPS_EVENT_FIRST_FIX
, gdy jest zablokowany. Zajęło mi to około 5 minut, aby Gps został naprawiony i zwrócił lokalizację. Napisałem też kolejny test z mapami i miałem ten sam problem, dopóki Gps nie zostanie naprawiony zarówno w menedżerze lokalizacji, jak i FLP.
Masz dobre pozwolenie na lokalizację? –
Tak, zarówno dobrze, jak i grubo. – Zishan
Czy zażądałeś aktualizacji lokalizacji lub okresowo odpytujesz metodę 'getLastLocation()'? –