Мобільні пристрої часто використовуються для вирішення різних завдань пов'язаних з визначенням географічних координат. Транспорт, будівництво, мандрівники, так чи інакше, мають потребу у визначенні свого місця розташування або інших об'єктів.
На сьогоднішній день найпростішим рішенням для цього є використання портативних приймачів супутникових навігаційних систем. зокрема вбудованих в пристрої на базі Android. При цьому найбільш поширеними є пристрої з підтримкою системи GPS.
В Android SDK весь функціонал по роботі з навігаційними системами об'єднаний в пакет android.location. Ключові компоненти даного пакету:
- LocationManager - (клас) забезпечує доступ до системної службі визначення місцезнаходження Android;
- LocationListener - (інтерфейс) регламентує обробку додаток подій служби визначення місцезнаходження Android;
- Location - (клас) представляє географічні координати отримані від навігаційної системи.
Підготовка до роботи
При написанні Android програми працює з навігаційними системами на Java за допомогою Android SDK спочатку необхідно виконати ряд підготовчих операцій.
Це пов'язано з тим, що на відміну від Delphi. тут відсутні будь-які дозволи, що надаються за замовчуванням і немає готових компонентів, які повністю брали б на себе всю роботу по взаємодії з GPS приймачем.
Всі необхідні дії потрібно виконати самостійно.
Насамперед надаємо додатком необхідні дозволи в файлі маніфесту.
Перед викликом методу requestLocationUpdates обов'язково необхідно перевірити наявність відповідних дозволів (оператор if). Якщо вони відсутні перед оператором return можна виконати деякі дії. Наприклад, записати повідомлення про помилку в журнал. Однак в будь-якому випадку при відсутності необхідних дозволів робота з навігаційною системою повинна бути завершена до реєстрації об'єкта LocationListener.
Метод requestLocationUpdates має кілька перевантажень. Найбільш часто використовувана з них приймає чотири параметри. Саме вона використана в прикладі вище.
- Постачальник даних про місцезнаходження.
В даному прикладі використовується GPS; - Мінімальний інтервал оновлення даних про місцеположення в мілісекундах.
Значення «0» відповідає використанню мінімально можливого інтервалу часу для даного пристрою; - Мінімальна відстань для поновлення даних про місцезнаходження в метрах.
Значення «0» відповідає використанню мінімально можливої відстані для даного пристрою; - Реєстрований об'єкт LocationListener.
Після реєстрації додаток зможе отримувати інформацію про місцезнаходження пристрою в міру його зміни.
Якщо необхідно отримати її одноразово, необхідно замість методу requestLocationUpdates використовувати метод requestSingleUpdate, який також має кілька перевантажень.
- Постачальник даних про місцезнаходження.
В даному прикладі використовується GPS; - Реєстрований об'єкт LocationListener;
- Об'єкт, який реалізує зворотний виклик.
Необов'язковий параметр.
Приклад використання методу requestSingleUpdate: