Lokalizacja jest trudnym zadaniem, gdy masz ograniczoną żywotność baterii i nie ma sygnału GPS w budynkach, na obszarach z wieloma dużymi budynkami itp. Ale Android znacznie ułatwia. Gdy żądasz lokalizacji, wystarczy określić, jakiej dokładności potrzebujesz.
Jeśli określisz, że chcesz accuracy
na przykład *100 meters*
, Android spróbuje uzyskać lokalizację i jeśli może uzyskać lokalizację z dokładnością do 70 metrów, zwróci Ci ją, ale jeśli Android może uzyskać lokalizację z dokładnością większą niż 100 metrów, aplikacja będzie czekać i nic nie otrzyma, dopóki nie znajdzie się miejsce z taką dokładnością.
Zwykle Android najpierw pobiera identyfikator komórki, a następnie wysyła go do serwera Google, który mapuje takie identyfikatory komórek, a serwer zwraca szerokość i długość geograficzną z dokładnością, która jest niska na przykład 1000 metrów. Do tego czasu Android spróbuje również zobaczyć wszystkie sieci WiFi w okolicy i prześle informacje o nich również na serwer Google i jeśli to możliwe, serwer Google zwróci nową lokalizację z większą dokładnością, na przykład 800 metrów.
W tym czasie GPS będzie włączony. Urządzenie GPS potrzebuje co najmniej 30 sekund od zimnego startu, aby uzyskać pozycję, więc jeśli uda się to naprawić, zwróci szerokość i długość geograficzną, ale ponownie z dokładnością, która będzie najwyższa z możliwych na przykład 100 metrów. Im dłużej działa GPS, tym lepszą dokładność uzyskasz.
Ważna uwaga: pierwsze dwie metody wymagają połączenia z Internetem. Jeśli nie ma połączenia danych, będziesz musiał poczekać na GPS, ale jeśli urządzenie jest w budynku, prawdopodobnie nie uzyskasz lokalizacji.