Приложение vpn. Лучшие действительно бесплатные vpn для android. О чем приложение

Скачать из Google Play

Описание программы
Для чего нужно приложение?

Приложение предназначено для мониторинга подвижных объектов в реальном режиме времени. Принцип действия основан на работе аппаратных GPS-трекеров : получение координат и отправка их на сервер с заданным интервалом.

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

Посмотреть, как будет работать программа, можно прямо сейчас на нашем демо-сервере

Основные элементы интерфейса


Задайте в настройках программы интервал в секундах.

Нажмите кнопку «Старт» на главном экране программы. После старта можно закрыть или свернуть программу и она продолжит свою работу в фоновом режиме.

Возможны три режима работы программы: постоянный , постоянный с отложенной отправкой и экономичный .

Постоянный режим

Действует, если задать в настройках интервал отправки менее 2-х минут.
Программа будет постоянно опрашивать спутники.

Постоянный режим с отложенной отправкой

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

Для того, чтобы активировать такой режим работы, нужно в настройках приложения включить «Разделить сбор и отправку». В пункте «Отправка координат» установить время в секундах, через которое все накопленные данные будут отправлены на сервер.

Обратите внимание, что время отправки не может быть меньше или равно времени сбора координат. Минимальное значение времени отправки рассчитывается так: «Время сбора + 1 минута ».

Экономичный режим

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

Обращаем внимание , что включится только фоновый опрос спутников и отправка на сервер. Главное окно программы при этом не появится на экране, если оно было закрыто или свернуто.

Режим SOS

Задайте в настройках номера телефонов, которые вы хотите оповестить по нажатию на кнопку SOS. Не обязательно задавать все три номера. Можно задать один или два телефона.

Нажмите на кнопку SOS на главном экране программы. При этом не важно запущен ли трекер в любом из режимов. Подтвердите свое намерение отправить сигнал SOS, нажав на кнопку «ДА»

Начнется поиск координат. При получении координат, программа сама отправит SMS сообщения на заданные в настройках номера. После этого режим SOS отключится автоматически.

Для того, чтобы отменить поиск координат в режиме SOS, нажмите на кнопку «Отмена SOS», которая будет на экране в течении всего периода работы данного режима.

Редактирование текста СМС сообщения.
Зайдите в «Настройки» -> категория «Настройки SOS» -> пункт «Редактировать SMS».

Редактирование состоит из:

  1. Возможности сохранять отправленную СМС в исходящих телефона. После отправки СМС сообщение появится в «отправленных» стандартного СМС-приложения устройства.
  2. Составление текста СМС:
    • "Координата" . Если установлена галка, координата добавляется в текст СМС сообщения.
    • "Ссылка на карту" . Настройка активирует пункт "Выбранная карта" и в текст СМС вставляется ссылка на картографический сервис http://mmaps.net с учетом выбора одного из 12-ти картографических сервисов.
    • "Произвольный текст" . Установка опции добавляет или убирает текст из СМС сообщения, а так же активирует 2 пункта:
      1. "Текст SMS" . В поле для ввода можно ввести текст любой длины.
      2. Выбор "Расположение текста":
        «В начале сообщения» - введенный в предыдущем пункте текст будет перед координатой и ссылкой на карту
        «В конце сообщения» - введенный текст будет после координаты и ссылки на карту.

"Предпросмотр SMS" . Любое действие, совершаемое в настройках, отображается в поле предварительного просмотра. Можно увидеть как будет выглядеть сообщение, которое отправится по кнопке SOS.

"RTT:SOS" является не изменяемым шаблоном, который вставляется в каждое СМС сообщение в не зависимости от выбранных пунктов.

Благодаря сложному механизму генерации ссылки, ее невозможно угадать или подобрать перебором. Поэтому можно быть уверенным, что посторонние не смогут получить доступ к перемещению вашего трекера. Для еще большей защищенности можно установить пароль на вход и тогда, доступ будет только для людей, которым вы лично скажите пароль.

  1. - Создание новой ссылки.
  2. - Синхронизация списка созданных ссылок с сайтом.
  3. - Удаление нескольких выделенных ссылок.

Более подробно смотрите в полной инструкции по работе с программой

Кнопка в главном окне приложения.

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

Регистрация на сайт и подключение трекера из приложения
С версии приложения 1.2 появилась возможность зарегистрироваться на сайт и добавить ваше устройство в личный кабинет прямо из приложения.

Во время первого старта, либо, если в настройках не указаны логин и пароль от сайта, при запуске приложения появится экран авторизации.

Так же на этот экран можно попасть из настроек приложения: Настройки -> категория «Устройство» -> пункт «Авторизация».

Если вы не хотите вводить данные прямо сейчас или регистрироваться, нажмите «Авторизуюсь позже» и вы перейдете к главному экрану приложения.

Если вы уже зарегистрированы, то введите свой логин и пароль от сайта и нажмите кнопку «Войти».

Если у вас еще нет логина и пароля от сайта, то нажмите «Зарегистрироваться». Вы перейдете к несложной форме регистрации.

Процесс регистрации.

Процесс регистрации состоит из двух шагов:

  • Заполнение данных.
  • Ввод кода активации.
Шаг 1. Заполнение данных.

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

Введите в поле «email» ваш реальный, существующий email. На него будет отправлено письмо с подтверждением регистрации, в противном случае вы не сможете пройти регистрацию до конца.

После заполнения всех полей, нажмите кнопку «Зарегистрироваться».
Если все данные были введены корректно, вы перейдете к форме ввода кода активации. Если при вводе возникла ошибка, приложение сообщит вам об этом.

Шаг 2. Ввод кода активации.

Дождитесь, пока на введенный email придет письмо с кодом активации. Введите полученный код в соответствующее поле и нажмите кнопку «Подтвердить код».

Учтите, что письмо с кодом может прийти не сразу, а в течении нескольких минут . Если более чем через 15 минут письмо так и не пришло, можно нажать на ссылку «Выслать письмо с кодом еще раз».

Так же вы можете написать в сапорт, если возникнут проблемы с прохождением регистрации. Для этого нажмите на ссылку «Написать в саппорт».

Во время ожидания письма не обязательно держать окно с формой ввода кода открытым на экране. Вы можете нажать «Пропустить», перейти к основному окну приложения, закрыть, свернуть окно. Вернуться к окну ввода кода можно будет снова, зайдя в приложение (окно автоматически откроется на экране), либо через настройки приложения, пункт «Авторизация».

Если код был введен правильно, приложение сообщит об успешном завершении регистрации и предложит добавить устройство в ваш новый аккаунт.

Нажмите «Да» и устройство автоматически добавится в ваш личный кабинет, выдав всплывающую подсказку «Устройство успешно добавлено». В случае невозможности добавления, будет выдана ошибка с указанием причины.

Нажмите «Нет», чтобы добавить устройство позже. В этом случае, добавить можно будет через настройки приложения: Настройки -> категория «Устройство» -> пункт «Добавить устройство».

Добавление устройства в аккаунт

Добавить устройство в ваш аккаунт на сайте можно двумя способами:

  1. После прохождения процесса регистрации, приложение предложит вам добавить устройство. Нажмите «Да» и устройство будет добавлено.
  2. Добавить устройство вручную через настройки. Настройки -> категория «Устройство» -> пункт «Добавить устройство»
  3. Через приложение можно добавить только то устройство, на котором оно установлено.

    Управление трекером через СМС команды
    В настройках приложения нужно установить разрешение для обработки СМС команд.
    Настройки -> блок «Управление через СМС команды» -> галка «Разрешить управление через СМС команды».

    Необходимо установить хотя бы 1 управляющий номер, иначе команды будут проигнорированы.

    Все управляющие номера равны по значимости и приоритету обработки команд от них.

    ВАЖНО : В связи с особенностями Android версий 3.х – 4.х, для СМС управления нужно, чтобы приложение было запущено хотя бы 1 раз и не остановлено принудительно через настройки смартфона. Если пользователь вручную в настройках смартфона/планшета в меню «Управление приложениями», либо любым другим менеджером процессов, сделает принудительное завершение, то СМС команды не будут обрабатывать до тех пор, пока приложение не будет запущено хотя бы 1 раз.

    Формат команд:

    <префикс #tt или #tts >пробел <имя команды >пробел <параметры опционально >

    tt – команда без подтверждения выполнения.
    tts – команда с подтверждением выполнения. В ответ придет СМС сообщение на номер, с которого пришла команда.

    Примеры команд:

    #tt start - Запуск трекера. Трекер начинает отправлять координаты в соответствии с теми настройками, которые установлены в приложении в данный момент.
    #tt econom on - Включение экономичного режима.

    Список СМС команд

    Полный список СМС команд можно

    Мониторинг
    Где можно посмотреть результаты. Здесь, на сайте в меню "Мониторинг " (в выезжающей панели "Показать на карте"), вы увидите все свои подключенные аппаратные трекеры.

    Как подключить трекер. В личном кабинете, в меню "Мои трекеры " зарегистрируйте новый трекер. Для этого выберите модель трекера (для данной программы это "Android-RealTimeTracker") и введите IMEI, который можно увидеть в настройках программы. Смотрите пример:

    Ввод IMEI

    Результат подключения

    После того, как трекер подключен, он отобразится у вас в меню "Мониторинг " и будет доступен только вам. Если этого достаточно, то больше ничего делать не нужно.
    Однако, часто требуется просмотр трекера не только вами, но и другими людьми, которые могут быть не зарегистрированы на сайт. Наиболее просто это делается с помощью приватных ссылок, которые легко отправить нужному человеку любым удобным вам способом. Для каждого трекера можно сгенерировать любое количество уникальных ссылок, задать описание и время действия каждой из них. Пример создания такой ссылки в картинках:

    Результат

    В данном примере мы создали ссылку для Васи, подписали, чтобы не забыть для каких целей мы создали эту ссылку и задали период отображения ссылки.
    Отдельно стоит рассказать о "Периоде отображения". Это тот период, за который можно просматривать данные по этой ссылке. В данном примере это интервал с 4-го по 15-е мая. Человек, получивший эту ссылку может просматривать данные до тех пор, пока вы не удалите эту ссылку, но данные будут показываться только за указанный период времени.

    Подробную инструкцию по работе с программой можно

    История изменений
    Изменения версии 2.6.5

    • Добавлен виджет для отправки текстового сообщения на сайт сервиса
    • Исправлена ошибка обновления GPS данных экрана "Панель индикаторов"
    • Исправлена ошибка зависания приложения при старте на некоторых устройствах

    Изменения версии 2.6.4

    • Для постоянного режима добавлена возможность адаптивного сбора данных ("Адаптивный трек")
    • Добавлен новый режим "Проверка состояния" ("Обратный SOS")
    • Добавлена возможность выводить несколько экранов в главном окне приложения
    • Добавлен экран показателей работы трекера
    • Добавлен перезапуск приложения после автоматической установки обновления из Google Play

    Изменения версии 2.6.3

    • Добавлена возможность отправки собственных событий и параметров (через управление из внешних программ)
    • Добавлены команды управления с сервера для блокировки входа в приложение, входа в настройки и запуска/остановки трекера
    • В шторку добавлена информация о режиме работы трекера
    • Для Android 5 и выше в системные уведомления возвращена цветная иконка индикатора состояния трекера
    • Исправлена ошибка с отключением экономичного режима при не стабильном сигнале GPS (из версии 2.6.2)
    • Исправлены мелкие ошибки в работе приложения (из версии 2.6.2)

    Изменения версии 2.6.2

    • Добавлена обработка событий (оповещение на сервер об определенных состояниях трекера)
    • В расписании добавлена возможность отправлять координату в СМС (без отправки на сервер мониторинга)
    • В режим СОС добавлена возможность отправки координаты на сервер мониторинга
    • В режиме СОС убрано подтверждение для запуска режима
    • Модифицирован и расширен протокол передачи данных
    • Исправлена ошибка с отсутствием отправки данных на Android 7
    • Откорректирована обработка реакции трекера на быстрое включения/выключение зарядного устройства
    • Откорректирована работа приложения в режиме DOZE на Andoid 7

    Изменения версии 2.6.1 ()

    • Добавлен режим, помогающий приложению работать при выключенном экране на Android 6+ ("Выводить из режима сна")
    • Добавлена инструкция по работе приложения в фоне при выключенном экране на Android 6+
    • Добавлена настройка "Учитывать включение экрана" при срабатывании акселерометра
    • Добавлена настройка "Точность определения" для экономичного режима
    • Исправлена ошибка в Ping-пакете в экономичном режиме
    • Исправлены ошибки загрузки некоторых настроек при импорте

    Изменения версии 2.6

    • Добавлена обработка событий по акселерометру
    • Добавлена отправка ping-пакета, в случае невозможности определить координаты
    • Изменена единица измерения скорости при записи файла в формате GPX

    Изменения версии 2.5.9

    • Добавлена возможность управлять трекером с сервера мониторинга
    • Исправлена ошибка падения при перезагрузке на Android 6+

    Изменения версии 2.5.8

    • Добавлена возможность экспортировать, импортировать и сбрасывать настройки приложения
    • Исправлена ошибка при перезапуске расписания (лишние срабатывания)

    Изменения версии 2.5.6

    • Адаптация приложения для корректной работы под Android 6.0
    • Обмен данными с сервером переведен на протокол с SSL-шифрованием (HTTPS)
    • Исправлены ошибки

    Изменения версии 2.5.5

    • Добавлена возможность повышенной стабильности работы постоянного режима
    • Изменен минимальный порог отправки в постоянном режиме до 1 сек
    • Внесены небольшие правки в модуль сбора координат по LBS

    Изменения версии 2.5.4

    • Добавлена возможность автоматической и ручной проверки обновления
    • Добавлена возможность обновить версию из приложения
    • Добавлен список изменений версий
    • Добавлена возможность заблокировать (убрать из списка) виждеты
    • Добавлена возможность сделать приложение администратором устройства
    • Сделана защита события старт-стоп от быстрого переключения
    • Повышен уровень неубиваемости приложения:
      - Исправлена остановка программы по Swipe
      - Добавлены проверки состояния режимов и обнаружение принудительных остановок
    • Исправлены мелкие ошибки

    Изменения версии 2.5.3

    • Добавлена проверка на использование фиктивных координат
    • Добавлена СМС команда для оперативной установки геозоны вокруг местоположения трекера
    • Исправлена ошибка при работе со ссылками, проявляющаяся в некоторых ситуациях

    Изменения версии 2.5.2

    • Исправлена ошибка с записью в файл при недоступной sd карте
    • Внесены мелкие правки и улучшения для более корректной работы на Android 4.4+

    Изменения версии 2.5.1

    • Добавлена возможность управлять трекером по заданному расписанию.

    Изменения версии 2.4.7

    • Добавлена возможность переключать режимы трекера по наличию питания.
    • Расширен протокол передачи данных. Новые параметры: точность GPS сигнала, HDOP, состояние питания и температура аккумулятора.
    • Параметр HDOP сохраняется при записи трека в GPX-формате.
    • Изменен формат имен файлов треков и логов для удобства сортировки.
    • Интегрированы улучшения модуля логина/регистрации.

    Изменения версии 2.4.6

    • Добавлена возможность записывать трек в файл.
    • Для пользователей переделаны модули логина и регистрации.
    • Добавлена возможность изменить папку приложения для хранения доп. данных (треки, логи).
    • Улучшен алгоритм шифрования пароля в запросах к серверу мониторинга.
    • Исправлена ошибка в модуле регистрации для устройств с большим разрешением экрана.

    Изменения версии 2.4.4

    • Восстановлена работа приложения с внешним GPS модулем.
    • Исправлена ситуация с записью лога при отключенной настройке.
    • Снижен уровень потребления питания в экономичном режиме.
    • Расширено логирование событий программы.

    Изменения версии 2.4.3

    • Полностью переработана внутренняя логика работы приложения.
    • Изменены режимы работы приложения. Выделены отдельно режим определения только по GPS и режим совместной работы GPS+LBS.
    • Режим определения по LBS работает при выключенном модуле GPS.
    • В экономичном режиме добавлена настройка времени ожидания GPS сигнала.
    • Изменены пороги интервалов для постоянного и экономичного режима.
    • Добавлена настройка предупреждения по желанию о выключенном модуле GPS.
    • Исправлена ошибка с запуском отложенной отправки после перезагрузки устройства.
    • Модернизирована опция старта приложения после перезагрузки устройства.
    • Устранены небольшие ошибки приложения.
    • СМС команда и команда внешнего управления "lbs" заменена на команды переключения режимов GPS или GPS+LBS.

    Изменения версии 2.3

    • Добавлено расширенное управление ссылками.

    Изменения версии 2.2

    • Добавлена возможность управления трекером из сторонних приложений.

    Изменения версии 2.1

    • Добавлена возможность вести подробный лог работы приложения
    • Увеличено количество информации при отправке ссылки по Email
    • Исправлен баг с появлением двойных координат
    • Исправлен баг в определении по LBS в экономичном режиме
    • Исправлен баг периодического выключения слежения в постоянном режиме

    Изменения версии 2.0

    • Реализован собственный протокол передачи данных.
    • Переделан механизм хранения очереди накопленных координат.
    • Добавлена возможность просматривать размер очереди, досрочно отправлять или полностью очищать.
    • Исправлена ситуация с потерей очереди после выключения смартфона или остановки трекинга кнопкой "Стоп"
    • Добавлена возможность разделить время сбора координат с GPS приемника и время отправки их на сервер (только для постоянного режима).
    • Добавлена возможность определять координаты по вышкам сотовой связи, в случае невозможности определить их по GPS.
    • Добавлен виджет управления трекером (старт, стоп, экономичный режим).
    • Добавлен виджет для кнопки SOS.
    • Добавлена возможность редактировать настройку "IMEI".
    • Добавлены дополнительные SMS команды.
    • Добавлена возможность подключить смартфон с программой, как платный трекер (при превышении лимита бесплатных устройств).
    • Добавлено оповещение о выключенном GPS и GSM модуле при старте трекера.
    • Исправлен баг с индикацией при обработке SMS команды "get".

    Изменения версии 1.2

    • Добавлена возможность управлять трекером через СМС команды
    • Добавлена возможность зарегистрироваться на сервисе из приложения
    • Индикатор состояния gps в панели уведомлений

    Изменения версии 1.1

    Обратная связь
    Если вам чего-либо не хватает в программе, если вы заметили ошибки - пишите.

Задача: наступает лето, дети все больше времени проводят где-то на улице, и я бы хотел знать, где они находятся. Идеальный вариант - я просто даю им с собой старый андроидный телефон, и затем наблюдаю за ними по карте на большом домашнем мониторе.
В этой статье я расскажу, почему и как я написал свое первое приложение для Андроид с функциями GPS «KidsTrack», и какие открытия при этом сделал. Статья будет полезна тем, кто недавно начал программировать под Android.


Поиски на Google Play выдали мне сотни различных приложений с функциями GPS-мониторов. Я уж начал их было перебирать, но примерно на 2-м десятке я осознал, что затраты времени на выбор могут оказаться вполне сравнимыми с затратами времени на разработку. Ведь мои функциональные требования очень просты:

  • приложение должно периодически отправлять анонимные координаты на сервер,
  • сервер должен показывать карту с маркером в соответствующем месте.
Это все!

Есть еще требования, которые не связаны с функциональностью, но которые не менее важны:

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

Одним словом, попробовав несколько приложений из Google Play, я решил написать трекер сам.

Экран с 3-мя кнопками


Но как только попробовал запустить на физическом устройстве - начались сюрпризы. О некоторых из них я хотел бы рассказать.

Сюрпризы управления питанием

Реальные андроид-устройства стремятся отключить себе питание при любой возможности. Постоянно получают питание лишь весьма примитивные системные часы (модуль мобильной связи здесь он не рассматривается). В часах есть регистр(ы), куда посредством AlarmManager можно записать время следующей пробудки процессора телефона. Если процессор не разбудят часы, то он так и будет продолжать спать ничего не делая. Сделано это по простой причине: включенный процессор разрядит батарею за час. Поэтому если надо, чтобы сервис что-то делал раз в минуту, то приемы десктопного программирования вроде Thread.sleep(60000) не подойдут, а вместо этого надо пользоваться AlarmManager , примерно вот так:

Public class YourService extends Service { public int onStartCommand(Intent intent, int flags, int startId) { /* Что-то делаем */ ... /* Планируем следующий страрт */ Intent ai = new Intent("info.izhforum.kidstrack.START_ALARM"); PendingIntent pai = PendingIntent.getBroadcast(mInstance, 0, ai, 0); mAlarmManager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+60000, pai); ... } }
В этом примере мы программируем AlarmManager разбудить телефон через 1 минуту, и отправить интент START_ALARM всем приложениям, кто на него подписан.

Прием интентов во всех учебниках осуществляется объектом BroadcastReceiver, однако если нам нужно, чтобы:

  1. телефон пробуждался из глубокого сна
  2. запускал наш сервис,
  3. не засыпал до завершения работы
то BroadcastReceiver не подойдет, и вместо него надо использовать WakefulBroadcastReceiver - этот объект гарантировано не допустит впадения телефона в сон до тех пор, пока не будет вызван метод completeWakefulIntent . Во всяком случае у меня так и не получилось заставить BroadcastReceiver работать надежно на физическом устройстве.

Если ваш сервис теоретически может выходить в интернет через WiFi, то вам необходимо позаботится, чтобы у WiFi-модуля во время соединения тоже было включено питание, так как оно у него отдельное. Если этого не сделать, то бывает трудно понять почему приложение не работает на физическом устройстве: ведь при отладке на эмуляторе или устройстве, подключенном к дебаггеру через USB, питание модуля WiFi не выключается, и все отлично работает. Запретить отключать питание WiFi можно так:

Private WifiManager mWifiManager = null; private WifiManager.WifiLock mWifiManagerLock = null; ... mWifiManagerLock = mWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "MyWFL"); mWifiManagerLock.acquire(); /* Здесь осуществляем сетевой ввод/вывод */ mWifiManagerLock.release();

Сюрпризы GPS

В первой версии приложения я сделал определение координат устройства только с использованием провайдера «GPS». И очень было мне удивительно наблюдать на сервере, как более 90% устройств не смогли определить координаты и присылали нули.
Как оказалось, GPS – довольно капризная технология с множеством ограничений, низкой скоростью и непредсказуемой точностью. При использовании традиционной GPS сенсор приемника должен получить данные обо всех GPS-спутниках (а их более 2х десятков), среди всех них выбрать наиболее подходящие, и уже по ним вычислять координаты. Получение данных и перебор могут занимать 5 минут и более, поэтому первый «холодный» старт GPS всегда самый медленный.
Если GPS-приемник имеет часы и помнит прошлые координаты и положения спутников, то он может использовать эти данные для определения тех спутников, к которым можно привязаться в данный момент. Поэтому повторный запуск GPS обычно происходит намного быстрее.
В современных смартфонах первоначальное грубое определение координат может осуществляться по близлежащим передающим сотовым вышкам, что так же позволяет ускорить «холодный старт» GPS. Для использования этого способа требуется разрешение на использование провайдера «network» в Manifest-е, так для определения я координат вышек может использоваться интернет.
Еще одна функция провайдера «network» - определять координаты по видимым WiFi - сетям. Определение осуществляется путем поиска координат видимых в данный момент сетей по их именам и MAC-адресам на серверах Google через интернет. Разумеется, в фоновом режиме и без лишних уведомлений идет и обратный трафик: телефон, когда определил свои координаты по GPS, может по-тихому послать данные об окружающих его WiFi-сетях на серверы Google, чтобы таким образом поддерживать актуальное состояние базы WiFi-сетей. Грустные размышления о потенциальной власти Google над владельцами Андроидов и WiFi-сетей оставим за рамками этой статьи…
Прояснив все эти нюансы я в авральном порядке подправил приложение, чтобы оно использовало не только провайдера «GPS» но и «network». После этого типичная последовательность вызовов метода onLocationChanged стала выглядеть так:
1) 00:00.234 провайдер = “network”, точность = 1672m // пришли координаты по сотовым вышкам 2) 00:00.933 провайдер = “network”, точность = 52m // пришли координаты по WiFi 3) 00:16.310 провайдер = “gps”, точность = 28m // пришли координаты по GPS
Я все-таки очень хотел задействовать GPS, так как обычно это самый точный способ, поэтому я установил время ожидания сигнала от GPS-сенсора 30 секундам, а если это первый пуск - 2-м минутам. И если GPS-сенсор так и не сработал, то используются координаты от провайдера «network». После этого изменения устройства стали присылать на сервер нормальные, ненулевые координаты.
Точность GPS также оказалась весьма условной. Например нередко точность координат, получаемых с сенсора неподвижного лежащего устройства может выглядеть так:
05:13:05 76m 05:14:36 68m 05:15:58 37m 05:17:20 79m 05:19:00 116m
Из этих данных ясно, что GPS хорош для нахождения зданий или других больших объектов, но найти человека в толпе, или телефон в сугробе будет непросто.

Отдельно стоит упомянуть питание GPS. Модуль GPS весьма прожорлив, поэтому в учебниках рекомендуют при вызове requestLocationUpdates не устанавливать слишком короткие параметры минимального интервала по времени и по расстоянию. Но в моих опытах с 3-мя различными физическими устройствами оказалось, что постоянно включенный модуль GPS садит батарею одинаково при различных параметрах. Потом уже я нашел где-то упоминание, что эти параметры влияют только на частоту вызова метода onLocationChanged , но не обязательно на энергопотребление самого сенсора.

Прочие сюрпризы

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

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

страница мониторинга


Яндекс.Карты : Страница мониторинга изначально была реализована с использованием API Яндекс.Карт, так как там не требуется ID, и нет ограничений на количество загрузок карты в день. Но оказалось, что на слабых устройствах Яндекс.Карты или тормозят, или вообще не открываются. Пришлось эту страничку делать в 2-х вариантах: Яндекс.Карты для настольных компьютеров, и Google Maps для слабых мобильных устройств. Google Maps оказались существенно быстрее.

Итоги

С практической точки зрения итоги, конечно, скромные, так как уже существует множество гораздо более продвинутых GPS-мониторов. Но судя по отзывам, именно простотой KidsTrack и приглянулся многим.
Для меня лично итоги значительно более внушительные. Главный итог - бесценный опыт, который невозможно было бы получить из статей или учебников. Грабли, описанные выше, заставили пересмотреть реалистичность и дизайн других более крупных проектов, над которыми я работаю.

Теги: Добавить метки




Top