Геолокації БЕЗ ВИКОРИСТАННЯ КАРТ в Android додатку

&nbsp

Що робити, якщо вашої активності потрібен доступ до геолокаційні інформації, але в цій активності відсутня MapView При використанні MapView Android значно все спрощує, дозволяючи застосовувати My LocationOverl ay Але якщо вам все ж не потрібна карта, то все одно буде не надто складно отримати геолокаційні інформацію Код з цього розділу не входить до складу програми MJAndroid, але показує, як можна отримати геолокаційні інформацію, не користуючись MapView

Розглянемо дуже просте додаток, що складається всього з однієї активності У цій програмі актуальне розташування відображається в поле TextView

Файли опису та компонування

Нижче наведено файл опису цієї програми – AndroidMani fest xml Ми створили даний файл, скориставшись Android SDK і входять до його складу редактором описів Android (Android Manifest Editor) У редакторі нам потрібно було внести в файл єдина зміна – додати тег uses-permission для android, permissionACCESS_FINE_LOCATION (в передостанньому рядку файлу) Нам завжди потрібна таке право доступу, щоб отримувати інформацію про місцезнаходження від нашого геолокаційні постачальника, що використовує систему GPS:

Ми використовували дуже простий файл компонування, до складу якого входить чотири TextView: по одній мітці і по одному текстовому полю для значень широти і довготи:

Підключення до постачальника геолокації і отримання оновлень

Для початку розглянемо активність, яка просто підключається до LocationProvider системи глобального позиціонування, отримує інформацію про наш актуальному місцезнаходження і відображає її (без оновлень):

Процедура абсолютно нехитра Розглянемо пояснення до коду

Зєднання з LocationManager-за допомогою getSystemService (ContextLOCATION_ SERVICE)

Запитуємо LocationManager про те, де буде використовуватися getLastKnownLoca-tionCprovider )

Отримуємо широту і довготу – ці значення повертаються від Location і використовуються при необхідності

Ще нам потрібно отримувати періодичні оновлення геолокаційні інформації від LocationManager так, щоб ми могли відслідковувати власний рух Для цього необхідно додати підпрограму-слухач (listener routine) і наказати LocationManager викликати цю підпрограму, коли зявиться оновлення інформації

Додаток отримує доступ до геолокаційні оновлень, що надходять від LocationManager, через клас Di spLocListener Тому створимо екземпляр цього класу в методі onCreate нашої головної активності Нам буде потрібно перевизначити методи в класі DispLocListener, щоб код відповідав визначенню інтерфейсу LocationListener, але в нашому додатку працювати з цим інтерфейсом не доведеться, тому дані визначення залишаться порожніми Ось повна реалізація класу:

Наш метод onCreate створює екземпляр класу Di spLocListener і наказує, щоб LocationManager оновлював його при необхідності за допомогою requestLocationUpdates Цей метод приймає чотири параметри

String provider – вказує, яке місце розташування використовувати постачальнику У даному випадку передбачається, що у нас доступна система GPS

long minTime – мінімальний час між оновленнями, вказується в мілісекундах LocationManager буде робити відновлення не частіше ніж з таким інтервалом Тут можна налаштувати додаток так, щоб воно не надто витрачало заряд батареї: чим частіше відбуваються оновлення, тим більше витрачається енергії

float minDistance – мінімальна відстань в метрах, після подолання якого ініціюється оновлення LocationManager оновиться лише за умови, що з моменту останнього оновлення ми пройшли мінімум таку відстань

LocationListenerlіstenei-назва методу слухача, який слід викликати при наявності оновлень Слухач – це щойно створений нами екземпляр DispLocListener

Нарешті, ми хочемо додати код методів onPause і onResume, щоб відключати поновлення місцезнаходження, коли карта не відображається на екрані пристрою, і знову включати, коли карта зявляється на екрані:

Оновлення імітованого геолокації

При розробці і налагодженню додатки, подібного до описаного в попередньому розділі, ми, як правило, користуємося емулятором Було б непогано (можливо, навіть суттєво), якби ми могли оновлювати поточну геолокацію, яку емулятор використовує при виконанні вашого коду Такий постачальник імітованої геолокації може бути дуже складний, але в Android передбачено декілька вбудованих способів для оновлення імітованого геолокації:

географічна програма (део), вбудована в оболонку Android

разові оновлення, які виконуються за допомогою Dalvik Debug Monitor Server

напрямок руху, послідовно оновлюється за допомогою Dalvik Debug Monitor Server

Розглянемо ці компоненти

Використання део для оновлення геолокації

Утиліта део вбудована в образ Android, що працює в емуляторі Вона володіє рядом можливостей, ми перерахуємо найбільш корисні з них

Команду део fіх можна використовувати для відправлення Android геолокаційні інформації Це робиться шляхом підключення до консолі емулюватися пристрої по протоколу Telnet Потім LocationProvider буде використовувати ці дані як актуальне місце розташування:

део fіх приймає три параметри:

longi tude – довгота, вказується в десяткових дробах

lat и tude – широта, також задається в десяткових дробах

al ti tude – висота, вказується в метрах

Використання DDMS для оновлення геолокації

Ми обговорювали службу Dalvik Debug Monitor Service (DDMS) Тут ми поговоримо про дві функції цього інструменту, повязаних з оновленнями геолокації Область Emulator Control (Управління емулятором) на екрані DDMS забезпечує кілька способів управління працюючим емулятором Після перемикання в режим DDMS (натисніть DDMS у верхньому правому куті вікна програми Eclipse) повинна відкритися область Emulator Control (Управління емулятором), яка відобразиться в середині вікна DDMS по лівому краю (рис 151) Можливо, буде потрібно трохи прокрутити цю область, щоб переглянути всі інструменти управління, повязані з Location Controls (Управління геолокаційні інформацією)

Рис 151 Область Emulator Control (Управління емулятором) в інструменті DDMS

Щоб повідомити емулятора одноразове оновлення геолокаційні інформації, просто вкажіть у відповідних полях значення широти і довготи і натисніть Send (Відправити)

Якщо вибрати вкладку GPX або KML, то можна буде завантажити файл у форматі GPX або KML, що описує шлях (рис 152) Тут ми вже завантажили файл OR kml, наявний на сайті цієї книги Він відстежує шлях поблизу від головного офісу видавництва OReilly, розташованого в місті Севастополь, штат Каліфорнія

Рис 152 Емулятор DDMS з оновленнями геолокаційні інформації у форматі KML

Файли шляхів у форматі GPX можна створювати за допомогою різноманітних навігаційних програм з підтримкою GPS, а файли KML – використовуючи Google Earth і багато інших навігаційні програми Файл OR kml був згенерований шляхом нанесення декількох міток (placemark) і конкатенації їх в єдиний файл Ось фрагмент файлу OR kml:

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*