Местоположение android google play

Определение местоположения пользователя с помощью Сервисов Google Play

Добрый день, Друзья!

Вопрос определения местоположения пользователя на максимальном количестве девайсов мучил меня примерно полгода. Дело доходило даже до велосипедов, описанных тут и тут. Дело было в том, что находились устройства, на которых местоположение не определялось, по неизвестной причине, однако другие приложения работали вполне хорошо. Очередной раз, копаясь в коде и рыская в просторах гула в поисках того, что я упускаю, и реализации, которой я еще не опробовал, наткнулся на свеженькую статью-мануал от google и, о боги(!), это заработало.

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

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

Для начала работы, необходимо инициализировать экземпляры классов LocationClient и LocationRequest. Первый отвечает за доступ к основным методам API определения местоположения и Geofence, второй обслуживает LocationClient и отвечает за обновления, т.е через него осуществляются колбэки(callbacks). С помощью LocationRequest, как в примере ниже, можно задавать интервалы обновления, приоритет для точности позиционирования и интервалы обновления.

Далее есть два варианта развития событий: мы можем взять последнее известное местоположение или запросить поиск нового.
В моем случае, я комбинирую эти два варианта, т.е в начале я получаю последнее известное местоположение и, если оно меня устраивает, использую его, иначе я запрашиваю обновления. В коде ниже, после вызова метода mLocationClient.connect() должен сработать метод onConnected(final Bundle bundle) у интерфейса GooglePlayServicesClient.ConnectionCallbacks, который означает, что нам удалось подключиться к Сервисам Google Play, т.е. теперь мы можем подписаться на обновление местоположения.

Когда мы запросили определение местоположения, чтобы скоротать как то время и не грузить UI — поток, я использую AsynkTask в качестве таймаута, который работает какое-то заданное время, и по завершению возвращает приложению найденное местоположение и отписывается от обновлений местоположения.

Собственно как это использовать пример с github:
Для начала нужно получить экземпляр класса, для себя я реализовал singletone, так как он более подходит, для моего случая

Затем подписаться на получение местоположения и делать все, что вздумается с ним.

Собственно вот и все, что я хотел рассказать по данной теме. Тут я постарался рассказать вкратце, и привел минимум кода по тексту, в исходниках на github я показал на примере, как найти местоположение пользователя и отсортировать список станций метро по расстоянию до пользователя.

Спасибо за внимание, надеюсь кому-то это поможет и избавит от мучений.

Источник

Как посмотреть историю перемещений пользователя Android-устройства

Давно этим пользуюсь, удобно смотреть где родные. Раньше на iOS это работало через программу latitude, потом ее закрыли и сейчас это работает через google+, но очень криво. Например у меня за декабрь история пустая.

Сообщение отправлено из мобильного приложения iGuides

Айяйяй-у меня 3 гуглодевайса в семье и два — эппловских. Во всех андроиддевайсах тут пусто. Какой ужас! И верно-при первом запуске нового девайса он спросит, отслеживать ли местоположение? Не знаю ни одного человека, кто ответил бы «да» 🙂

Сообщение отправлено из мобильного приложения iGuides

Так и представляю, как вьі спрашиваете при встрече у своих знакомьіх:
— а тьі давал согласие на отслежьівание?
А те в свою очередь отвечают:
— Нет конечно. А тьі?

Сообщение отправлено из мобильного приложения iGuides

Читайте также:  Штурман для андроид что это

Источник

Данные о местоположении

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

Примеры кода

Хранилище ApiDemos на сайте GitHub содержит пример, который демонстрирует использование данных о местоположении на карте.

Java

  • MyLocationDemoActivity: использование слоя «Мое местоположение», включая динамические разрешения.
  • LocationSourceDemoActivity: использование собственного источника LocationSource .
  • CurrentPlaceDetailsOnMap: определение текущего местоположения устройства Android и отображение сведений об организации или другом объекте, который там находится. Ознакомьтесь с руководством по отображению сведений о месте на карте.

Kotlin

  • MyLocationDemoActivity: использование слоя «Мое местоположение», включая динамические разрешения.
  • CurrentPlaceDetailsOnMap: определение текущего местоположения устройства Android и отображение сведений об организации или другом объекте, который там находится. Ознакомьтесь с руководством по отображению сведений о месте на карте.

Работа с данными о местоположении

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

  • Слой Мое местоположение представляет собой простой способ отобразить местонахождение устройства на карте. Он не возвращает никаких данных.
  • Для всех программных запросов данных о местоположении рекомендуется использовать Location API сервисов Google Play.
  • Интерфейс LocationSource позволяет использовать собственный источник данных о местоположении.

Доступ к данным о местоположении

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

Android предлагает два разрешения на использование данных о местоположении: ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION . От вашего выбора зависит, насколько точную информацию будет предоставлять API. Вам необходимо запросить только одно из разрешений на использование данных о местоположении Android в зависимости от требуемого уровня точности:

  • android.permission.ACCESS_COARSE_LOCATION позволяет использовать точки доступа Wi-Fi и/или мобильные данные, чтобы определять приблизительное местоположение устройства. API предоставляет информацию о местоположении с точностью примерно до городского квартала.
  • android.permission.ACCESS_FINE_LOCATION позволяет API максимально точно определять местоположение на основании информации, предоставляемой поставщиками данных о местоположении, включая глобальную систему позиционирования (GPS), сеть Wi-Fi и мобильные данные.

Добавление разрешений в манифест приложения

Добавьте одно из следующих разрешений в качестве дочернего для элемента в манифесте Android. Укажите разрешение для данных о приблизительном местоположении:

Или разрешение для данных о точном местоположении:

Запрос разрешений в среде выполнения

В Android 6.0 (Marshmallow) представлена новая модель работы с разрешениями, которая оптимизирует процесс установки и обновления приложений пользователями. Если ваше приложение предназначено для API уровня 23 или более позднего, вы можете использовать новую модель разрешений.

Если приложение поддерживает новую модель разрешений, а на устройстве используется Android 6.0 (Marshmallow) или более новая версия, пользователю не нужно предоставлять какие-либо разрешения при установке приложения или его обновлении. Пользователь увидит диалоговое окно с просьбой предоставить соответствующее разрешение.

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

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

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

В следующем примере кода проверка разрешения выполняется с использованием библиотеки поддержки перед включением слоя «Мое местоположение»: Затем результат запроса разрешения обрабатывается путем реализации ActivityCompat.OnRequestPermissionsResultCallback из библиотеки поддержки.

Kotlin

Слой «Мое местоположение»

Слой «Мое местоположение» и одноименная кнопка позволяют пользователям видеть свое актуальное местоположение на карте. Чтобы включить слой «Мое местоположение», вызовите метод mMap.setMyLocationEnabled() .

Читайте также:  Хорошие шрифты для андроид

Простой пример использования слоя «Мое местоположение»:

Kotlin

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

На скриншоте ниже вы можете увидеть кнопку «Мое местоположение» справа вверху и синюю точку в центре карты.

Чтобы предотвратить показ кнопки «Мое местоположение», вызовите UiSettings.setMyLocationButtonEnabled(false) .

Ваше приложение может реагировать на следующие события:

  • Если пользователь нажимает кнопку «Мое местоположение», ваше приложение получает обратный вызов onMyLocationButtonClick() от прослушивателя GoogleMap.OnMyLocationButtonClickListener .
  • Если пользователь нажимает на синюю точку «Мое местоположение», ваше приложение получает обратный вызов onMyLocationClick() от прослушивателя GoogleMap.OnMyLocationClickListener .

Важный пункт Условий использования

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

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

Location API сервисов Google Play

Данные о местоположении в приложениях для Android лучше всего обрабатывать с помощью Location API сервисов Google Play. Он позволяет выполнять следующие задачи:

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

Location API упрощает создание приложений, работающих с данными о текущем местоположении пользователя и эффективно расходующих ресурс аккумулятора устройства. Как и Maps SDK for Android, Location API распространяется как часть SDK сервисов Google Play. Дополнительную информацию вы можете найти в учебном материале об использовании в приложении данных о местоположении, а также в документации по Location API. Примеры кода содержатся в SDK сервисов Google Play.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Источник

Как узнать местоположение телефона на Android

В статье рассматривается несколько способов использования сервисов отслеживания местоположения Android-устройства.

Отслеживание местоположения при помощи менеджера устройств

Нет ничего проще, чем отследить геолокации вашего Android-устройства. Пока сервис отслеживания местоположения включен, вы можете воспользоваться услугой «Find My Device», которую предоставляет Android Device Manager от Google. Для этого нужно войти в ваш аккаунт Google и разрешить сбор данных о местоположении.

Когда сделаете это, то увидите точное GPS- местоположение вашего смартфона на Google картах.

Слева от карты вы увидите три функции:

  • Play a sound : заставляет смартфон звонить в течение пяти минут, даже если на нем установлен беззвучный режим. Если смартфон находится где-либо поблизости, вы его услышите.
  • Lock : блокирует устройство, чтобы никто не смог получить доступ к вашим данным.
  • Erase : удаленно стирает всю информацию на устройстве.

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

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

Больше инструментов доступно на странице «Найти ваш телефон» . Эта страница покажет список всех устройств, которые вы использовали для доступа в Google. Вы можете выбрать из списка смартфон или планшет, который вы хотите найти.

После чего вы увидите длинный перечень утилит:

  • Check recent security events : отображает список запросов на смену или сброс пароля в Google.
  • Lock your phone : позволяет заблокировать смартфон, чтобы никто не смог получить к нему доступ.
  • Try calling your phone : предоставляет доступ к контактам (чтобы найти номер, если вы его забыли) или к сессии Google Hangouts, чтобы позвонить на ваш смартфон.
  • Sign out of Google on your phone : позволяет выйти из профиля Google на вашем мобильном устройстве, чтобы никто не смог получить доступ к информации из него.
  • Erase your phone : Эта функция немедленно сотрёт всю информацию с вашего смартфона.
Читайте также:  Плеер для андроида флак

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

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

Имейте в виду, что использование функции «Erase your phone» уничтожит все данные, к которым Google имеет доступ на вашем смартфоне. При этом Google не сможет стереть информацию, хранимую на карте памяти.

Когда сотрёте содержимое смартфона, то потеряете информацию из аккаунта Google. Вы больше не сможете использовать перечисленные выше сервисы.

Инструмент для удаления информации – это крайняя мера. Его нужно использовать только, если полностью уверены, что потеряли смартфон навсегда.

Отслеживание iPhone с Android-устройства

Хотите отследить местоположение вашего iPhone? Нет проблем. Даже если работаете на Android, вы всё равно можете отследить местоположение iPhone, используя сервис Find My iPhone от Apple.Но есть одна загвоздка.

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

Но пользователи Android могут обойти это ограничение. Для этого нужно нажать кнопку меню, расположенную в правом верхнем углу окна браузера и выбрать пункт «Полная версия» из выпадающего списка. Подразумевается, что вы используете мобильную версию браузера Google Chrome.

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

Так же, как и в случае с Android- устройством, вам нужно будет включить сервис определения местоположения. Но прежде нужно активировать функцию поиска смартфона.

Теперь вы знаете, как отследить местоположение iPhone, даже если остальные ваши устройства работают на Android.

Отслеживание устройства при помощи сторонних приложений

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

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

Поиск местоположения смартфона через Facebook

Если войдёте в приложение Facebook на вашем мобильном устройстве, то увидите ссылку «Друзья поблизости». Нажмите на неё, и вы узнаете, кто из знакомых по социальной сети включил опцию «поделиться своим местоположением с друзьями».

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

Также найти своих друзей можно через мессенджер Facebook, нажав на кнопку «+», расположенную в левой части приложения, и выбрав иконку местоположения.

Это покажет получателю сообщения маленькую карту с указанным на ней местоположением вашего смартфона.

Поделитесь вашим местоположением на картах Google

Ещё один способ сообщить семье и друзьям ваше местоположение–карты Google. Если вы откроете картографический сервис и войдете в его меню, то в списке увидите ссылку «Поделиться местоположением».

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

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

Это хороший способ для всей семьи знать о местоположении друг друга.

Что вам нравится больше?

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

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

Источник

Оцените статью