Главная » Разработка для Android » ДОБАВЛЕНИЕ ПОДДЕРЖКИ ГЕОЛОКАЦИОННЫХ СЕРВИСОВ – ЧАСТЬ 2

0

КСТАТИ __________________________________________________________________

Реализацию этих советов вы найдете на диске, прилагаемом к книге.

Реализовав инфраструктуру для функциональности, выбора избранного места пользователя, вы можете заняться более интересными вещами, например вычислением последнего известного системе местоположения и отображения на карте по GPS- координатам.

ИСПОЛЬЗОВАНИЕ ГЕОЛОКАЦИОННЫХ СЕРВИСОВ

Разработчики, реализующие поддержку LBS-сервисов, должны принимать во внимание несколько моментов. Первый и самый важный момент: местоположение пользователя — это конфиденциальная информация, для использования которой необходимо его согласие. Второй момент: LBS-сервисы на мобильном телефоне потребляют большое количество энергии и передают большой объем данных по сети.

Система Android позволяет частично решить эти проблемы при помощи разрешений. Вот несколько рекомендации по использованию LBS- и подобных сервисов:

•             Активируйте LBS-функции только тогда, когда они действительно необходимы, и отключайте их сразу же, когда необходимость в них отпадает.

•             Поставьте пользователя в известность о том, что вы собираете и используете конфиденциальные данные. Многие пользователи считают свое текущее или предыдущие местоположения конфиденциальной информацией.

[1]      Предоставьте пользователю возможность настраивать и отключать функции, которые могут отрицательно повлиять на впечатление от использования вашего приложения. Например, разработайте режим «роуминга» для вашего приложения, чтобы позволить пользователю работать с вашим приложением, не неся серьезные затраты.

•             Обрабатывайте такие события системы, как, например, предупреждения о разряде батареи, и соответствующим образом изменяйте работу вашего приложения.

•             Подумайте над добавлением раздела, посвященного конфиденциальности, в соглашение об использовании вашего приложения, чтобы объяснить, как будут (или не будут) использоваться любые данные, указываемые пользователем, включая его имя и информацию о его местоположении.

ВНИМАНИЕ! _____________________________________________________________

Не каждое устройство, работающее под управлением операционной системы Android, имеет аппаратное обеспечение для определения местоположения, поэтому вы не должны полагать, что абсолютно все устройства смогут предоставить информацию о местополо­жении пользователя.

Часть функциональности, связанной с LBS-сервисами, входит в состав Android SDK, а некоторые наиболее интересные функции — часть дополнения Google API. Это дополнение позволяет, например, встраивать функциональность сервиса Google Maps непосредственно в Android-приложения.

Разработчики, которые планируют использовать Google API, должны зарегистрироваться, чтобы получить специальный аккаунт разработчика Google, и использовать, специальный API ключ.

Тестирование функциональности, связанной с определением местоположения, на эмуляторе

Многие LBS-функции доступны разработчикам и без использования специальных аккаунтов разработчиков Google и API-ключей. Например, вак нужен специальный API- ключ дня использования сервиса Google Maps непосредственно из приложения, но, чтобы запустить объект типа Intent для просмотра местоположения с помощью приложений для работы с картами, специальные разрешения не требуются.

СОЗДАНИЕ AVD-УСТРОЙСТВЛ С ДОПОЛНЕНИЕМ GOOGLE API И ПРИЛОЖЕНИЯМИ

Возможно, вы заметили, что базовая конфигурация системы Android (целевая платформа, выбранная при создании AVD-устройства зля использования в качестве эмулятора) не имеет приложения для работы с картами. Чтобы использовать приложение Google Maps на эмуляторе, нужно создать AVD-устройство с дополнением Google API. Поскольку вы хотите добавить некоторую функциональность для работы с картами в приложение «Been There, Done That!», вам нужно создать новое AVD-устройство для этой целевой платформы.

НАСТРОЙКА МЕСТОПОЛОЖЕНИЯ НА ЭМУЛЯТОРЕ

К сожалению, эмулятор Android просто имитирует реальное устройство — естественно, поэтому он не может аппаратно определить свое текущее местоположение. Это придется

сделать вам самим. Простейший способ настроить ваш эмулятор — использовать перспек­тиву DDMS в среде разработки Eclipse. Введите широту и долготу местоположения, которое вы хотите использовать на эмуляторе.

ЗНАЕТЕ ЛИ ВЫ, ЧТО… ______________________________________________________

Для получения GPS-координат вы можете использовать сервис Google Maps. Чтобы опре­делить требуемые координаты, перейдите по адресу maps.google.com и найдите желаемое местоположение. Отцентруйте карту по этому местоположению, щелкнув правой кнопкой мыши по карте, и затем нажмите на кнопку для создания ссылки на карту (обычно она на­ходится в правом верхнем углу экрана). Скопируйте полученный адрес URL в текстовый файл. Найдите последнюю переменную 11 в запросе — это и есть широта и долгота. На­пример, значение переменной 11, представляющей берег Йеллоустонского озера в Йелло- устонском национальном парке, равно 51.845959, 104.908447. Значение 44.427896.­110.585632 переменной 11 обозначает широту 44.427896 и долготу -110.585632. Вы мо­жете еще раз проверить эти координаты, вставив их в строку поиска сервиса Google Maps и убедившись, что на карте отображается то самое место.

Рис. 14.10. Диалоговое окно для выбора избранного места пользователя с запущенным

приложением Maps

Рис. 14.11. Использование приложения Maps для увеличения масштаба отображения в режиме просмотра снимков со спутника

Если в приложении для работы с картами нажать кнопку Menu, вы сможете изменить режим отображения карты, переключившись на режим просмотра снимков со спутника, и увеличить масштаб отображения карты, чтобы увидеть великие пирамиды, а также туристические автобусы и Сфинкса, как показано на рис. 14.11.

Работа с сервисами и приложениями сторонних разработчиков

Поставляемая вместе с инструментарием Android SDK LBS-функциональность доступна в пакете android.location. Базовая LBS-функциональность, например получение местоположения на основе спутниковой триангуляции, встроена в инструментарий Android SDK. Тем не менее многие наиболее интересные и мощные функции по работе с картами и LBS-сервисами на телефонах Android «строены не и базовый инструментарии Android SDK, а входят в дополнение Google API, поставляемое вместе с Android SDK.

РАБОТА С ДОПОЛНЕНИЕМ GOOGLE API И РАСШИРЕННОЙ КАРТОГРАФИЧЕСКОЙ ФУНКЦИОНАЛЬНОСТЬЮ

Картографическая функциональность может быть встроена в приложения при помощи дополнения Google API. Вот некоторые из функциональных возможностей, доступных в пакете com. google . android.map:

•             элемент управления MapView, применяемый для отображения интерактивной карты непосредственно в макете экрана приложения;

•             класс MapActivity, упрощающий работу с элементами MapView на экране;

•             класс GeoPoint, инкапсулирующий информацию о местоположении:

•             классы, поддерживающие возможность наложения информации на карту (рисование поверх карты);

•             классы для работы с проекциями местоположений и выполнения других распространенных геолокационных задач.

Для использования дополнения Google API и некоторых функций вы должны создать специальный аккаунт, принять лицензионное соглашение и получить API-ключ. Рассмотрение этой потрясающей и необычно мошной функциональности, к сожалению, выходит за рамки данной книги. Освоив основы реализации поддержки LBS-сервисов на платформе Android, вы можете обратиться к более детальному руководству по разработке на платформе Android, например к нашей книге Android Wireless Application Development (издательство Addison-Wesley), которая содержит подробные примеры использования дополнения Google API. Дополнительную информацию по этим классам можно найти на веб-сайте с описанием дополнения Google API, доступному по адресу code.google. com/ android/add-ons/googleapis/ reference/index. html.

ИТОГИ

В этом часе вы реализовали новую функциональность, связанную с выбором избранного места пользователя, на экране с настройками приложения «Been There, Done That!». Вы узнали, как использовать встроенные геолокационные сервисы для получения текущего местоположения устройства, а также как преобразовывать адреса в географические координаты. Вы также узнали, как можно запускать приложение для работы с картами и отображать указанное местоположение. Наконец, вы познакомились с некоторыми расширенными возможностями использования Функциональности LBS-сервисов, предоставляемыми инструментарием Android SDK.

ВОПРОСЫ И ОТВЕТЫ

Вопрос: Я хочу использовать элемент MapView. Где я могу получить ключ для дополнении Google API?

Ответ: На веб-сайте, посвященном дополнению Google API. где описаны нее шаги для получения ключа: http :// code. google . com/ android/add-ons/googleapis/ mapkey. html. Этот процесс подразумевает создание аккаунта Google (если у вас его еще нет).

Вопрос: Как мне спроектировать приложение, для которого требуется более интенсивная обработка информация о местоположении, например, выполнение обновлений при изменении местоположения?

Ответ: Существует ряд подходов. Новички могут использовать объект типа LocationManager, который позволяет регистрировать деятельность для обработки периодических обновлений информации о местоположении, включая возможность запускать некий интент при возникновении определенного события. Все задачи, связанные с использованием LBS-сервисов, должны быть вынесены из основного потока, управляющего пользовательским интерфейсом, поскольку для их выполнения требуется некоторое время; вместо этого вы можете использовать рабочий поток, класс AsyncTask или процесс, выполняющийся в фоновом режиме. Кроме того, прослушивайте только те события, связанные с определением местоположения, которые вам действительно необходимы, чтобы избежать возникновения проблем с производительностью на устройстве.

ПРАКТИКУМ Контрольные вопросы

1.                                 Какие моменты должны учитывать разработчики при работе с LBS- сервисами?

A.       Конфиденциальность пользователя.

B.       Затраты пользователя на оплату услуг мобильной связи.

C.       Продолжительность жизни батареи устройства.

D.     Точность и достоверность информации, предоставляемой LBS-cep- висами и сервисами, основанными на геокодировании.

E.        Время получения информации о местоположении.

F.        Все вышеперечисленное.

2.                                 Верно ли это? Помимо элементов Button, доступных в диалоговом окне AlertDialog, в пользовательском макете могут использоваться другие элементы Button.

3.                                 Какие сервисы входят в Android SDK?

A.                                Геолокационные сервисы.

B.                                 Сервисы, основанные на геоколировании и обратном геокодировании.

C.                                Сервисы для работы с картами.

4.                                 Верно ли это? Поскольку эмулятор не настоящее устройство, на нем нет возможности использовать LBS-сервисы.

Ответы

1.                     F. При разработке приложений, использующих функциональность LBS- сервисов, разработчики должны принимать во внимание все перечисленные моменты.

2.                     Верно. Допускается использовать элементы Button, являющиеся частью пользовательского макета. При создании диалогового окна вы должны определить подходящие обработчики событий нажатий View.OnClickListener. Обратите внимание, что эти обработчики немного отличаются от обработчиков событий нажатий DialogInterface.OnClickListener, необходимых для управления тремя основными кнопками в диалоговом окне AlertDialog.

3.                      A и B. Инструментарий Android SDK включает поддержку LBS-сервисов. а также сервисов, основанных на геокодировании и обратном геокодировании. Сервисы, предоставляемые конкретными устройствами, могут отличаться. Картографические сервисы, поставляемые в виде дополнения Google API, не входят в базовый инструментарий Android SDK.

4.                     Неверно. Эмулятор обеспечивает поддержку LBS-сервисов (для некоторых сервисов требуется дополнение Google API), а перспектива DDMS может быть использована для изменения местоположения устройства.

Литература: Дэрси JI., Android за 24 часа. Программирование приложений под операционную систему Google/ ДэрсиЛ., КондерШ. — М.: Рид Групп, 2011. — 464 с. — (Профессиональные компьютерные книги). ISBN 978-5-4252-0318-2

По теме:

  • Комментарии