Работа с GPS

Документация по работе с GPS находится здесь. Но вопросы остаются...

Только начав работать с местоположением и проверяя работу приложения на эмуляторе не сталкиваешься с какими-либо сложностями. Однако тестирование на реальном устройстве не всегда приносит ожидаемый результат.

Первое, с чем высока вероятность столкнуться на реальном устройстве - нежелание устройства получать координаты с GPS.

Попробуем разобраться что поставляет устройству его координаты и как переключать метод поставки.

Итак, тестовое приложение показывает следующие параметры:

- включено ли определение местоположения (Enabled), да (true);

- доступные поставщики местоположения* (AvailableProviders), в данном случае, это сотовая или Wi-Fi сеть (network), что-то неизвестное (passive) и GPS (gps);

- текущий поставщик (ProviderName) - сотовая сеть;

- заблокирован** ли текущий поставщик (ProviderLocked) - нет (false).

Пара пояснений:

* для статического устройства энергетически выгодно использовать сеть (network), для движущегося устройства - gps.

** используется для запрета переключения между поставщиками.

Кроме того, обратим внимание, что в данный момент в телефоне включён "режим полёта".

Не смотря на перечисленное, тестирование в движении не переключает поставщика на gps.

Всё это вводит в заблуждение. Но выход есть.

У компонента Location Sensor вышеприведённое свойство ProviderName можно принудительно переключать, например:

Приложение отвечает на это так:

Сотовая и Wi-Fi сети включены, поставщик местоположения не заблокирован.

Итак:

- в статус баре показано, что датчик GPS в работе;

- уже было несколько переключений между поставщиками (Switches);

- текущий поставщик - gps;

- текущие значение доступности выбранного поставщика (status) - доступен (AVAILABLE).

Наиболее точный способ определения местоположения доступен! Что и требовалось.

К слову, сообщения о статусе могут быть и такими:

Выключенный gps в эмуляторе при принудительном переключении на него в программе (счётчик увеличивает значения):

Включённый gps в эмуляторе (переключений нет):

А вот скрин с планшета (GPS включён, но спутники не найдены):

Как видно, количество поставщиков меняется от устройства к устройству и, кроме того, зависит от включения оборудования устройств.

Вот тема, которая так же отвечает на некоторые вопросы по GPS:

https://groups.google.com/forum/?fromgroups=#!topic/appinventor/KACu9G-r8a8