Что значит однократно геопозиция
На что влияет каждая настройка геолокации в iPhone. Какие можно отключить
Время автономной работы современных гаджетов откровенно не радует. Постоянно приходится настраивать устройство и отключать неиспользуемые фишки, чтобы подольше находиться вдали от розетки.
Одним из самых энергозатратных модулей в iPhone является GPS. Кроме этого в параметрах предусмотрено множество переключателей и опций для этого датчика.
Сейчас разберемся, за что отвечает каждый тумблер по пути Настройки – Конфиденциальность – Службы геолокации – Системные службы и какие из них можно безболезненно отключить.
На что влияют настройки геолокации в iOS 14
1. Геопредложения – позволяет системе и сторонним сервисам предлагать пользователю более точные предложения в зависимости от его местоположения.
Служба предназначена исключительно для рекламных целей, если надоели постоянные уведомления с акциями от Пятёрочки или Магнита – отключайте данный переключатель.
2. Геопредупреждения – это более важная служба, которая нужна для срабатывания всевозможных сценариев с привязкой к геолокации.
Например, если включили напоминания со срабатыванием по геопозиции или автоматизацию в зависимости от вашего местоположения, данная фишка должна быть включена. Если подобными штуками вы не пользуетесь – смело отключайте.
3. Данные и беспроводн. сети – этот переключатель отвечает за работу чипа U1. Такой модуль есть на борту всех айфонов начиная с моделей iPhone 11/11 Pro, Apple Watch Series 6 и HomePod mini.
Чип необходим для более точного определения местоположения гаджетов в помещениях, для передачи данных между устройствами по протоколу UWB без использования Wi-Fi и для поиска гаджетов поблизости при помощи меток AirTag, которые никак не представят купертиновцы.
Фишка работает только на последних поколениях гаджетов, а в России и вовсе отключена на программном уровне. Смело отключаем тумблер.
4. Идентификация продавца Pay – определяет местоположение пользователя во время оплаты при помощи бесконтактной платежной системы. Это необходимо для поиска и более точного определения идентифицированных продавцов, которые имеют право принимать оплату через Pay.
Другими словами, система позволяет более точно определять продавца на основе вашего местоположения. Крайне бесполезная фишка, отключаем.
5. Калибровка компаса – нужна для тех, кто часто пользуется навигационными приложениями. Без нее системе потребуется время, чтобы определить направление взгляда пользователя для его позиционирования на карте.
Обычно для этого используются данные при движении и калибровка по GPS не нужна. Включаем опцию только при необходимости ориентирования по смартфону в сложных условиях или вдали от цивилизации.
6. Калибровка учета движения – чисто спортивная функция. Она позволяет более точно определять пройденное со смартфоном расстояние, количество шагов пользователя или преодоленных им ступеней.
Нужна фишка только тем, кто использует iPhone в качестве шагомера или нуждается в точной спортивной статистике без Apple Watch и фитнес-браслетов. Остальные могут отключать опцию.
7. Найти iPhone – самая важная фишка в параметрах геолокации. Без нее не получится найти смартфон после потери или кражи. Обязательно включаем и не трогаем это тумблер!
8. Настройка системы – нужна для работы некоторых фишек iOS вроде оптимизированной зарядки, смены темы оформления или NightShift по времени заката/рассвета, а не по заданному расписанию.
Если вы не используете такие настройки – можете отключить переключатель.
9. Поделиться геопозицией – отвечает за работу GPS для возможности поделиться своей геопозицией с друзьями. Без включения переключателя не получится отправить свое местоположения в чате или через приложение Локатор.
10. Поиск сотовой сети – предназначена фишка для сбора статистики о местоположении пользователя относительно вышек сотовой связи. В теории так можно помочь Apple и оператором улучшать покрытие, а на практике лучше отключить этот тумблер.
11. Установка часового пояса – поможет правильно скорректировать время на смартфоне во время пересечения часовых поясов. Те, кто путешествует пару раз в году и реже, могут запросто отключить фишку.
Постоянно летающим и перемещающимся туристам эта опция будет определенно полезна.
12. Экстренные вызовы и SOS – нужна для точного определения местоположения пользователя при активации SOS-режима. При желании найти смартфон получится и через позиционирование по вышкам сотовой связи.
Хорошо работает все это лишь в США и еще небольшом ряде стран. У нас фишка точно бесполезная.
13. DeviceManagement.framework – служба, которая позволяет удаленно конфигурировать гаджет и нужна исключительно для образовательных учреждений.
У нас это вообще вряд ли когда-то заработает, смело отключаем.
14. HomeKit – необходимая фишка для срабатывания сценариев в умном доме, которые настроены на прибытие или уход пользователя. Если умный дом настроен не на базе HomeKit либо в нем нет сценариев на приход/уход, отключаем переключатель.
15. Важные геопозиции – служба, которая банально следит за вами и запоминает любимые посещаемые места. На основе собранных данных система будет предлагать определенные рекомендации.
Долой постоянную слежку! Отключаем переключатель и не забываем очистить собранную статистику в этом меню.
16. Совершенствование продукта – отдельная группа переключателей, которая активирует службы совершенствования продуктов Apple. Тратить заряд батареи на это точно не стоит. Отключаем все переключатели ниже.
Итог для тех, кто не читал
Отключаем все переключатели кроме Найти iPhone.
Внимательно читаем описание переключателей:
? 2. Геопредупреждения;
? 6. Калибровка учета движения;
? 8. Настройка системы;
? 14. HomeKit;
Определяем для себя необходимость каждой фишки и настраиваем соответствующие тумблеры.
Как поделиться геолокацией на Андроиде. 3 рабочих способа
Необходимость поделиться геолокацией на смартфоне может возникнуть по самым разным причинам. Отправить точное место встречи, подтвердить своё нахождение в том или ином месте или, скажем, позволить близким целенаправленно следить за вашим перемещением в случае, если таксист, в машину которого вы сели, почему-то свернул не туда. В общем, скинуть геоточку может быть очень полезно, независимо от ситуации. Другое дело, что многие, как выяснилось, вообще не представляют, как это сделать.
Поделиться геопозицией на Андроиде можно несколькими способами
Первым делом предлагаю разобрать, как скинуть геолокацию в Ватсап, потому что это, пожалуй, одно из самых распространённых средств общения. Я очень люблю говорить, что WhatsApp — это как Сбербанк Онлайн: мало кто пользуется на постоянной основе, но про запас есть у всех. Так что, даже если сами вы отдаёте предпочтение другому мессенджеру, учитывайте, что человек, с которым вы хотите поделиться своим текущим местоположением, скорее всего, использует WhatsApp, а значит, ваши личные предпочтения тут не играют никакой роли.
Как скинуть геолокацию в Ватсап
Передать через Ватсап свою геолокацию можно и статично, и интерактивно
Подпишись на наш аккаунт в Пульс Mail.ru. Там очень интересно.
Как следить за человеком по геолокации
В этом режиме вы можете только отправить свою точку, которая подскажет вашему собеседнику, где именно вы его ждёте, или сможет указать на нахождение конкретного пункта назначения. Однако может быть и так, что вам потребуется сбросить интерактивную геоточку, которая будет учитывать изменения вашего местоположения и изменяться по мере ваших передвижений, что позволит собеседнику отследить, в каком направлении вы двигаетесь. Отправить изменяемую геолокацию не сложнее:
Если нужно, вы можете отправить по Ватсап геолокацию, которая будет меняться вслед за вашим местоположением
Как отправить геолокацию в Телеграме
В Telegram тоже есть возможность поделиться текущей геопозицией с собеседником, и тоже в двух режимах: статичном и интерактивном. Таким образом вы сможете показать человеку, с которым общаетесь, не только где вы были в момент отправки геопозиции, но и в каком направлении вы перемещаетесь. Это может быть актуально в самых разных ситуациях, но наиболее распространённая причина — непонятное направление следования таксиста, который везёт вас. Особенно, если вы просто поймали машину на улице, а не вызвали через приложение.
Отправить геолокацию в Телеграм можно легко и просто
Если нужно, можно включить отслеживание в реальном времени
Поскольку ваша геопозиция будет транслироваться вашему собеседнику в реальном времени, вам потребуется дать Telegram довольно много разрешений. Это необходимо, потому что приложение получит доступ к более приватной информации, чем обычно, равно, как и ваш собеседник. Именно для воспрепятствования неограниченному сбору данных, мессенджер предлагает ограничить время отслеживания. Кроме того, это сделано в целях сохранения зарядки аккумулятора, которая начинает расходоваться активнее из-за непрерывной работы GPS.
Геолокация в Гугл Мапс
Ну, и, пожалуй, третий по распространённости способ отправки геолокации — это Google Maps. Карты поискового гиганта имеют ещё более упрощённый интерфейс по сравнению с мессенджерами, так что вы наверняка не запутаетесь, не говоря уже о том, что Google Maps создаёт универсальную ссылку, которая открывается в любом мессенджере, приложении социальной сети и даже на почте. Так что, если вам нужно отправить геометку сразу через ВК, Одноклассники и, скажем, Gmail, используйте карты Google. Это будет лучшим вариантом.
Ссылка на местоположение из Google Maps универсальна
Время от времени Google Maps требуют провести калибровку для более точного позиционирования. Если этого не сделать, погрешность, с которой карты будут транслировать ваше местоположение, может достигать 20 и даже 40 метров. Несмотря на то что, как правило, этого не происходит, и погрешность не превышает 5-10 метров, иногда лучше не пренебрегать калибровкой. Самый эффективный способ откалибровать Google Maps — с помощью AR-режима, отсканировал окружающее вас пространство посредством встроенной камеры.
Геолокация в iOS: что тут сложного?
Привет, меня зовут Макс, я разрабатываю iOS-приложение Додо Пиццы. Наша фича-команда работает над улучшением опыта заказа через приложение в зале и тестирует гипотезы, связанные с геолокацией. Мы столкнулись с проблемой, что система не позволяет корректно отследить, какое разрешение даёт клиент при запросе геопозиции. Например, если он выбирает «Однократно», нет возможности отличить этот вариант от «При использовании».
Помимо этого, некоторые наши гипотезы тесно связаны с работой геолокации в бэкграунд-режиме. В нём резко повышается сложность работы: появляются новые системные алерты; состояния, при которых эти алерты показываются; варианты авторизации, которые может выбрать клиент.
Непонимание всех тонкостей авторизации и работы геолокации в бэкграунде привели нас к необходимости детально погрузиться в тему. Результатами исследований делюсь в сегодняшней статье.
Что умеет геолокация на iOS в бэкграунд-режиме
Работа с геолокацией в состоянии, когда приложение открыто, обычно не вызывает трудностей. Сейчас мы используем эту возможность для показа ближайшей пиццерии. Гораздо больший интерес и сложность представляет работа с геолокацией в бэкграунд-режиме. Эти возможности можно поделить на две группы:
1. Непрерывное отслеживание геопозиции после сворачивания приложения. Например, клиент делает заказ на пути в ресторан, сворачивает приложение. Мы понимаем, что клиент придет через 15 минут, поэтому начинаем готовить ему пиццу. Пока приложение открыто, подписываемся на изменения геопозиции. Затем продолжаем отслеживание в бэкграунд-режиме, т.е. после того, как пользователь свернул приложение. Можем установить частоту в метрах и желаемую точность.
Далее устанавливаем Capabilities — Background Mode:
В коде необходимо выставить
Обязательно нужно отключить автоматическую паузу, иначе система может остановить трекинг в бэкграунде и запустить его больше не удастся:
Запускаем отслеживание геопозиции:
После сворачивания приложения система покажет индикацию в виде синей стрелки в статус-баре (для устройств без чёлки статус-бар станет синим).
Приложение будет отслеживать геопозицию в запущенном состоянии до тех пор, пока мы не остановим отслеживание, либо пока пользователь не закроет приложение принудительно.
Индикатор работы GPS.
Для данного способа достаточно авторизации When In Use. При авторизации с типом Always система не будет показывать синюю индикацию. Подробнее про авторизацию поговорим далее.
2. Получение геопозиции при возникновении событий смены локации. Например, когда клиент проходит недалеко от пиццерии, он получает пуш-уведомление об актуальных акциях именно в ней.
Этот способ умеет запускать приложение, даже если оно было выгружено из памяти. После запуска мы можем получить текущую геолокацию. Для этого мы должны подписаться на некоторые события, находясь в запущенном состоянии.
К таким событиям относятся:
Significant location changes — значительные изменение геопозиции c точностью от 500 метров;
Visits — посещение популярного места: дом, работа, спортзал и т.д.;
Regions — посещение определённой геозоны, которую задает разработчик.
Для данного способа требуется авторизация типа Always.
Разбираемся в статусах и состояниях авторизации
В CoreLocation есть 2 запроса для разрешения на использование геолокации:
И 5 возможных статусов авторизации:
В действительности состояний авторизации больше, чем статусов, а переходы между ними кажутся запутанными. Распутываем авторизацию в следующей схеме:
Значение переменной authorizationStatus :
для зеленых блоков — authorizedAlways ;
для синих — authorizedWhenInUse .
На схеме есть два состояния, которые никак не отражены в статусе authorizationStatus : When In Use Once и Provisional Always. Рассмотрим их поближе.
When In Use Once
Это состояние во многом похоже на When In Use, оно имеет такой же статус authorizedWhenInUse . Но у When In Use Once есть два больших отличия:
после перезапуска или по истечению таймаута статус авторизации будет переключён в notDetermined
из этого состояния нельзя запросить разрешение типа Always, при вызове requestAlwaysAuthorization() ничего не произойдёт.
Provisional Always
Самый первый алерт на запрос использования геолокации всегда будет выглядеть так, неважно, какой из этих двух методов мы вызвали.
В будущем пользователь увидит алерт, в котором система предложит либо переключиться на Always, либо оставить на When In Use. В документации говорится, что это произойдёт в момент, когда система попытается запустить приложение при наступлении одного из событий (например, пользователь зашёл в регион). Как правило, это происходит, когда пользователь находится на главном экране iPhone.
The second prompt displays when Core Location prepares to deliver an event to your app requiring CLAuthorizationStatus.authorizedAlways.
Такое поведение больше похоже на неожиданное спам-сообщение. Пользователь уже давно ушёл из контекста нашего приложения. Велика вероятность, что он переключится на When In Use.
Более надёжный способ перейти в состояние Always: сначала получить от пользователя разрешение When In Use и только потом запрашивать Always. Можно попытаться сделать это сразу, последовательно вызывая requestWhenInUseAuthorization и requestAlwaysAuthorization().
Ещё один вариант гарантированно получить Always: сразу отправлять пользователя в настройки. Так, например, делает Telegram.
Telegram не вызывает requestAlwaysAuthorization(), а сразу отправляет пользователя в настройки.
При активном использовании способа Always iOS покажет пользователю алерт, в котором предложит переключиться обратно на When In Use, либо остаться в Always.
Система также показывает сводку об активности приложения.
Как можно заметить, схема авторизации в iOS сильно затрудняет сбор данных о том, насколько пользователь доверяет приложению и какой способ авторизации выбирает — та самая проблема, о которой шла речь в начале статьи.
Смена статуса авторизации: новые возможности в iOS 15
В iOS 15 появился фреймворк CoreLocationUI. В Apple стремятся упростить опыт пользователя в сценариях, когда необходимо разово получить геопозицию. Теперь можно использовать специальную кнопку CLLocationButton (LocationButton в SwiftUI), при нажатии на которую система сама спросит у пользователя разрешение, если это требуется.
Различные варианты CLLocationButton. Новый алерт с запросом на разовое получение геопозиции. Текст всегда системный.
Если текущий статус авторизации позволяет хоть какое-то использование геолокации ( authorizedAlways , authorizedWhenInUse ), то при нажатии на кнопку ничего не произойдёт. В противном случае логика смены статусов авторизации выглядит так, как показано на схеме:
Если пользователь однажды согласился дать разрешение на разовое использование геопозиции, то в другие сессии при нажатии на кнопку приложение будет сразу получать разрешение When In Use Once, без алертов.
Самая интересная фишка здесь — это возможность скинуть состояние авторизации в неопределённое (notDetermined), даже если ранее пользователь запретил использование геолокации.
Простой тест это подтверждает. Выполняем requestWhenInUseAuthorization(), запрещаем использование геолокации. Далее нажимаем на CLLocationButton, разрешаем разовое использование (нажимаем ОК). Перезапускаем приложение, чтобы статус авторизации cбросился в notDetermined. Снова выполняем requestWhenInUseAuthorization(), появляется алерт.
В предыдущих версиях повторный показ алерта был возможен только в случае, если пользователь сам перейдёт в настройки приложения и вручную сбросит запрет на использование геолокации. Таким образом, новый фреймворк даёт разработчикам возможность восстановить (возможно, навсегда потерянный) доступ приложения к геолокации. Задача разработчика — предоставить пользователю новую ценность при запросе авторизации, чтобы избежать повторного запрета.
Новые возможности в iOS 15 потенциально сокращают количество надоедливых алертов, а разработчикам не нужно писать обработку различных сценариев авторизации. Подробнее здесь: Meet the Location Button WWDC 2021.
Непрерывное отслеживание геопозиции при наступлении события
Допустим, мы хотим узнать скользящее значение скорости пользователя в момент, когда он зашёл в определённый регион. При этом приложение может быть выгружено из памяти.
Значение скорости из CLLocation (location.speed) зачастую неточное. В качестве средней скорости можно использовать скользящее значение, например скорость за последние 50 метров.
Авторизуем геолокацию с типом Always. Далее подписываемся на событие входа в регион:
И при получении события начинаем трекать геолокацию, как в способе 1:
Я провёл несколько тестов на устройстве. В момент посещения региона приложение запускается, но система довольно быстро переводит его в состояние suspended, несмотря на то, что мы сконфигурировали и запустили CLLocationManager для подробного отслеживания геопозиции. Продолжать отслеживать геопоцизию непрерывно и рассчитывать скорость не удастся.
Коротко про особенности работы в бэкграунд-режиме
Непрерывное отслеживание геолокации:
может быть запущено только в состоянии foreground и продолжать работу после сворачивания приложения;
пользователь всегда понимает, что геопозиция отслеживается — синяя индикация в статус-баре;
достаточно авторизации When In Use, но при Always исчезает синяя индикация.
Примеры приложений: приложения такси, навигаторы, фитнес-трекеры.
Разовое получение геолокации при наступлении события:
ограниченный набор событий, при наступлении которых можно получить геолокацию;
система разбудит приложение при наступлении события, даже если оно выгружено из памяти;
требует Always авторизации. Сложно получить и сохранить разрешение от пользователя;
событие не придёт, если пользователь принудительно закрыл приложение.
Примеры приложений: Telegram (функционал «поделиться геопозицией»).
Геопозиция в смартфоне: что такое и как она определяется
Каждому из нас неоднократно приходилось сталкиваться с ситуацией, когда некое приложение или сервис требует разрешить определение геопозиции устройства.
Для этого должен быть включена так называемая геолокация – процесс определения географических координат с помощью доступных для него средств.
Зачем это нужно
Простейшее применение геопозиционирования – показ на карте ближайших объектов, представляющих в данной ситуации интерес для пользователя.
Например, если ему нужен салон мобильной связи, то вокруг отметки, соответствующей его местонахождению, можно будет видеть еще несколько, там, где располагаются такие салоны.
В зависимости от функционала используемого приложения можно будет проложить до любого из них оптимальный маршрут, узнать график работы и получить много другой полезной информации.
Другой вариант – корректировка поисковой выдачи. Пользователю показывают именно те интернет-ресурсы, геотаргетирование которых соответствует его местоположению.
К примеру, если он желает купить ноутбук определенной модели, находясь в Перми, ему совершенно неинтересны предложения магазинов Москвы.
Понятно, что так выглядит ситуация только в самых общих чертах, на деле алгоритмы корректировки куда более сложны.
Некоторые программы позволяют добавлять в сделанный фотоснимок информацию о месте и времени съемки. Для этого тоже требуется определение местоположения.
Еще с помощью геолокации можно определить геопозицию украденного или потерянного смартфона. Для этого придется воспользоваться учетной записью Google, если на нем установлен Android, или iCloud, если речь идет об устройствах Apple.
Особо следует сказать о значении данной технологии для бизнеса.
Анализируя данные, полученные от клиентов из различных регионов, компании корректируют ценовую политику, принимают решение о необходимости рекламных мероприятий и судят об успешности тех или иных собственных действий.
Кроме того, каждый клиент может видеть цены в той валюте, которая используется на территории его местонахождения.
Методы определения геопозиции
Навигационная система GPS имеется практически в любом современном мобильном устройстве, за исключением разве что wintel-девайсов. Поэтому, если речь заходит об определении геопозиции в планшете или смартфоне, первым делом на ум приходит именно она.
Но есть и альтернатива: аппарат способен отслеживать свое местоположение и без посредства ГЛОНАСС, GPS, Beidou и прочих Galileo.
Для этого в настройках должно быть выбрано определение по координатам сети. В этом случае при необходимости установления геопозиции отправляются запросы через Wi-Fi, HSDPA, LTE или GSM сети, в зависимости от того, что поддерживается и включено на данном конкретном устройстве.
Точность такого позиционирования существенно ниже, чем при использовании спутниковых систем навигации, но для большинства нужд ее вполне достаточно. Но никто не запрещает одновременное использование обоих методов.
Управление определением геопозиции
Геолокация – дело совершенно добровольное. При необходимости операционная система позволяет эту функцию без особых проблем отключить.
Причина здесь может быть любой от паранойи и нежелания, чтобы вас «отслеживали», до экономии заряда батареи за счет отказа от использования GPS модуля.
В операционной системе Android управление осуществляется через пункт настроек «Местоположение». В нем пользователь может разрешить или запретить приложениям использовать сведения о географической позиции устройства, а также включить или отключить ее определение с помощью GPS или координат сети.
В iOS всё несколько сложнее. Управление службами геолокации находится в меню «Конфиденциальность». Там же имеется список приложений, могущих использовать координаты пользователя. При необходимости можно выборочно разрешать или запрещать им это делать.
В заключение
Желтая пресса, писатели-антиутописты и создатели фильма «Матрица» настолько настойчиво вдалбливали в головы жителей планеты мысль: «Большой Брат следит за тобой!», что у многих развилась самая натуральная паранойя.
Определение геопозиции делается вовсе не для того, чтобы человека в любой момент могли «взять за химок» спецслужбы – у них и без этого хватает возможностей.