Місце розташування - це складна задача, коли у вас обмежений час автономної роботи і коли немає сигналу GPS у будівлях та в районах з великою кількістю будівель тощо. Але Android робить це набагато простішим. Коли ви запитуєте місцезнаходження, вам просто потрібно вказати, яка точність вам потрібна.
Якщо ви вказали, що вам потрібен accuracy
приклад *100 meters*
, Android спробує отримати місцезнаходження, і якщо воно може отримати місце з точністю до 70 метрів, воно поверне його вам, але якщо Android може отримати місце з точністю вище 100 метрів, ваша заявка буде чекати і не отримає нічого, доки не з’явиться місце з такою точністю.
Зазвичай Android спочатку отримує ідентифікатор стільникового зв'язку, а потім надсилає його на сервер Google, який відображає такі ідентифікатори стільникового зв'язку, і сервер повертає широту та довготу з точністю, яка є низькою для прикладу 1000 метрів. До цього часу Android також спробує побачити всі мережі Wi-Fi в цьому районі, а також надішле інформацію про них на сервер Google, і якщо можливо, сервер Google поверне нове місце з більш високою точністю, наприклад, 800 метрів.
На цей час GPS буде ввімкнено. GPS-пристрою потрібно щонайменше 30 секунд від холодного старту, щоб отримати виправлення, тому, якщо вдасться виправити, він поверне широту та довготу, але знову ж із точністю, яка буде максимально можливою для прикладу 100 метрів. Чим довше GPS працює, тим більшу точність ви отримаєте.
Важливе зауваження: Перші два методи вимагають підключення до Інтернету. Якщо з’єднання даних немає, доведеться почекати GPS, але якщо пристрій знаходиться в будівлі, ви, мабуть, не отримаєте місцезнаходження.