Как стать автором
Обновить

Без GPS и геолокации: узнаём местоположение пользователя, используя сим-карту

Время на прочтение3 мин
Количество просмотров29K
Всего голосов 11: ↑10 и ↓1+9
Комментарии26

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

По-моему, вы узнаёте не местоположение устройства, а местоположение базовой станции, на которой оно обслуживается.

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

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

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

А Google Geolocation API - это не служба определения местоположения?

И, насколько я знаю, у этого API есть ограничение на скорость запросов. Если вы хотите часто к нему обращаться, то платите денежки.

Это позволило нам определить местоположение пользователя с помощью триангуляции.

Не критики ради, а информации для - в тексте, кроме этого предложения, нет больше ни одного упоминания и тем более использования заявленного метода.

Простое использование информации о базовой станции, на которой зарегистрирован телефон.

Согласен. В оригинальной статье конкретная реализация алгоритма не раскрыта.
Но, уверен, многие пользователи просто не рассчитывают, что приложение регулярно может получать информацию о местоположении телефона (с той или иной точностью), несмотря на отключенный GPS.
В оригинальной статье конкретная реализация алгоритма не раскрыта.

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

Я имею в виду не тот код, что в статье (и на гитхабе), а тот, что в продукте, о котором упоминается в статье.

Это продукт третьей стороны, естественно, автор статьи про него ничего не может написать. Но какова на этом фоне ценность самой статьи?

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

Но ведь пользователи сами выдают разрешение ACCESS_COARSE_LOCATION.

Без этого пермишена приложение просто молча падает.

Важно! Для доступа к сетевой информации на устройстве всё же необходимо запросить соответствующее разрешение

А столько было обещаний...

Да, для разработчика это основной затык…
На этом реализация киллер-фичи приложения закончена

А как простой пользователь может заблокировать эту киллер-фичу? Чтобы приложение условного калькулятора не отслеживало координаты…
Ваше приложение должно сделать запрос к API

То есть с моей мобилы идёт запрос на Unwiredlabs...?
Получается просто заблокировать *.unwiredlabs.com?
Не давать этому условному калькулятору разрешение на определение местоположения… Правда, будет ли он после этого выполнять свою основную функцию — вопрос :)
А как простой пользователь может заблокировать эту киллер-фичу?

Не давать разрешение android.permission.ACCESS_FINE_LOCATION. И доступ к симке тоже не давать. Зачем это все калькулятору?

В данном случае - ACCESS_COARSE_LOCATION

Я сварщик ненастоящий, статью цитировал.

Мы подумали: «Что делать,… если пользователь предоставит фиктивное местоположение?»

Даже не знаю, может, отвалить от пользователя?

Не знаю кто там какое приложение делает, но мне тут стало любопытно, зачем приложениям такие как управление наушников или часов с браслетами и всяких калькуляторов получать разрешение на получение информации о контактах пользователя, доступ к пользовательскому контенту и местоположении. И почему запрет этих разрешений, влечет за собой неработоспособность приложения. Дома валяются четыре комплекта ушей и браслет, приложениям для которых нужно предоставлять практически неограниченный доступ к данным на телефоне.
Однажды я подобный вопрос на хабре уже задавал, но особо не получил внятного ответа зачем это. Кто то ещё не знает что на телефонах бывает контент 34? Китайским, корейским, израильским и прочим товарищмайорамполковникам злой пейсбук с гуглом и яндексом не продают данные о пользователях?

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

Тфу... Думал таки найду действительно карту вышек/антенн сотовой связи. А тут тоже фуфло.

Есть в деревне за 700км от МКАД три вышки, вроде как сотовой связи. Реально их видел, давно стоят. Сам я не там. И вот надо подобрать антенки, чтоб модем хорошо настроить на определённого провайдера. Но где он, на какой из вышек? Та, что за 7км, та, что за 4км, или та, что за 2км, но скрывается за тополями на горизонте?

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

Сразу вспомнил про программу для дроида "Cell info" и то, что она делает привязки станций к карте. Небольшой поиск привел меня на https://location.services.mozilla.com
Уже там можно забрать файлик со списком станций, координатами и т.п.
Посмотрите, возможно это то, что Вам нужно.

Разбейте задачу на подэтапы:

  1. определение высоты антенны (сопоставить рельеф вышек и места антенны)

  2. юстировка положения антенны (делается на месте) + CellInfo аппа для Android.

    Сам год назад решал аналогичную проблему.

Ваше приложение для Китая? В принципе вы описали Fused Location Provider в Play Services, только менее точный.

Речь идёт только для Android?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории