Как включить службы определения местоположения на iPhone или Android

Смартфоны знают, где вы находитесь, и предоставляют вам информацию на основе этого с помощью функции под названием Location Services.
Благодаря Location Services, если у вас есть смартфон, вы никогда не будете потеряны. Даже если вы не знаете, где вы находитесь или куда идете, ваш смартфон знает ваше местоположение и как доставить вас практически куда угодно. Еще лучше, если вы собираетесь поесть или искать магазин, ваш телефон может дать рекомендации о том, что рядом с вами. С помощью Служб определения местоположения вы также можете использовать свой телефон для отправки своего текущего местоположения друзьям и родственникам и облегчить им встречу с вами.
Итак, есть ли у вас iPhone или телефон Android, вот как включить Location Services.
Что такое службы определения местоположения и как они работают?
Службы определения местоположения — это название набора функций, которые определяют ваше местоположение (или, по крайней мере, местоположение вашего телефона), а затем предоставляют контент на основе этого. Карты Google , Find My iPhone , Yelp и многие другие приложения используют местоположение вашего телефона, чтобы сообщать вам, куда ехать, где находится ваш потерянный или украденный телефон или сколько хороших буррито находятся в пределах четверти мили от вашего положения.
Службы определения местоположения работают, подключаясь как к оборудованию телефона, так и к различным видам данных об Интернете. Основой служб определения местоположения обычно является GPS . Большинство смартфонов имеют встроенный GPS-чип. Это позволяет вашему телефону подключиться к сети Глобальной системы определения местоположения, чтобы узнать его местоположение.
GPS отличный, но не всегда точный. Чтобы получить еще лучшую информацию о том, где вы находитесь, Службы определения местоположения также используют данные о сотовых телефонных сетях, близлежащих сетях Wi-Fi и устройствах Bluetooth, чтобы точно определить, где вы находитесь. Объедините данные GPS и сети с данными из краудсорсинга от Apple и Google, и вы получите мощную комбинацию для определения, на какой улице вы находитесь, в каком магазине вы находитесь, и многое другое.
Некоторые смартфоны высокого класса добавляют датчики, такие как компас или гироскоп . Эти датчики определяют направление и направление движения.
Как включить службы определения местоположения на iPhone

Возможно, вы включили службы определения местоположения при настройке iPhone . Если нет, то включить их очень просто. Просто следуйте этим шагам:
- Нажмите Настройки .
- Нажмите Конфиденциальность .
- Нажмите Службы определения местоположения .
- Перемещение Опред.местополож ползунок включения / зеленый . Службы определения местоположения теперь включены. Приложения, которым они нужны, могут сразу же получить доступ к вашему местоположению.
Эти инструкции были написаны с использованием iOS 13 , но те же шаги — или почти одинаковые — применяются к iOS 8 и выше.
Как включить службы определения местоположения на Android

Службы определения местоположения включаются во время настройки устройства Android, но вы также можете включить их позже, выполнив следующие действия:
- Нажмите Настройки .
- Нажмите Местоположение .
- Переместите ползунок On .
- Нажмите Режим .
- Выберите режим, который вы предпочитаете:
- Высокая точность: обеспечивает наиболее точную информацию о местоположении с помощью GPS, сетей Wi-Fi, Bluetooth и сотовых сетей для определения вашего местоположения. У него высочайшая точность, но он использует больше батареи и меньше конфиденциальности.
- Экономия батареи : экономит батарею, не используя GPS, но все еще использует другие технологии. Менее точный и имеет более низкую конфиденциальность.
- Только для устройства: лучше всего, если вы заботитесь о конфиденциальности и в порядке с менее точными данными. Поскольку он не использует сотовую связь, Wi-Fi или Bluetooth, он оставляет меньше цифровых треков.
Эти инструкции были написаны с использованием Android 7.1.1, но они должны быть очень похожи на другие, последние версии Android.
Что делать, когда приложения запрашивают доступ к службам определения местоположения

Приложения, использующие Службы определения местоположения, могут запрашивать разрешение на доступ к вашему местоположению при первом запуске. Некоторые приложения должны знать ваше местоположение, чтобы функционировать должным образом. Делая этот выбор, просто спросите себя, имеет ли смысл приложение использовать ваше местоположение.
Ваш телефон также может время от времени спрашивать, хотите ли вы, чтобы приложение продолжало использовать ваше местоположение. Это функция конфиденциальности, позволяющая убедиться, что вы знаете, к каким приложениям данных осуществляется доступ. Параметры конфиденциальности Apple для этой функции более надежны, чем у Android. На iPhone всплывающее окно позволяет вам разрешить приложению получать доступ к вашему местоположению в любое время, только когда вы используете приложение или никогда. Он также покажет места, где приложение отслеживает вас, чтобы лучше понять, что означает отслеживание.
Хотите узнать больше о защите вашей конфиденциальности на iPhone? Проверьте, как защитить личную информацию, хранящуюся на вашем iPhone .
Если вы решите, что хотите отключить все службы определения местоположения или запретить некоторым приложениям использовать эту информацию, прочитайте раздел Как отключить службы определения местоположения на вашем iPhone или Android .
Location Services Android как отключить

Компания Google знает практически все о пользователях Android устройств, в том числе местоположение. С одной стороны, это неплохо, потому что представляет довольно много полезных функций:
- Найти украденные или потерянный смартфон
- Узнать, где вы провели веселую прошлую ночь
- Получать уведомления об интересных событиях или акциях, которые проходят в ближайших магазинах
Тем не менее, не всем нравится идея, что за вами постоянно следят. В данной статье мы расскажем, как отключить location services android, иными словами, отслеживание вашего мобильного устройства.
Как отключить location services android
Для начала перейдите в основное меню приложений и откройте «Google настройки».

Далее выберите раздел «Местоположение». Перед вами откроется приблизительно такой экран, как на изображении ниже:

Первая опция предоставляет возможность отключить location services android. Также на этом экране вы можете увидеть, какие приложения имеют доступ к отслеживанию вашего местоположения. Если вы заметили что-то подозрительное, вы можете убрать разрешение на отслеживание для конкретного приложения.
Если вы хотите отключить location services android только ради экономии заряда батареи, мы советуем пользоваться специальной функцией экономии энергии, которая расположена в разделе «Батарея». Таким образом, вы отключите GPS, при этом Wi-Fi и мобильные сети продолжат работать.
Отключить геоданные
Помимо предоставление информации о вашем местоположении для сторонних приложений, Google также собирает данные о местоположении и сохраняет их на своих серверах. Вы можете очень удивиться, узнав, как много информации знает Google о каждом из нас. Если вы хотите увидеть данные о своем местоположении, которые хранятся на серверах Google, перейдите по этой ссылке.
Если вы хотите отключить эту функцию и запретить Google собирать и хранить данные о вашем местоположении, вам нужно снова перейти в раздел Настройки – Местоположение и открыть приложение Google Location Reporting. Теперь нужно отключить «Геоданные» и «Историю местоположения» на вашем Android устройстве.
Отключение location services android имеет как плюсы, так и минусы. Благодаря определению местоположения, вы можете отслеживать свое перемещение или найти мобильное устройство в случае, если оно будет утеряно. При этом придется свыкнуться с мыслью, что Большой Брат следит за вами.
Сервисы Google Play для определения местоположения и активности
Люди любят брать свои мобильные устройства повсюду и использовать их постоянно. Некоторые приложения используют это преимущество и изменяют свое поведение в зависимости от местоположения пользователя и / или текущей деятельности, чтобы предоставить более индивидуализированный сервис.
Чтобы получить текущее местоположение пользователя на Android, вы можете использовать API определения местоположения , который был частью платформы Android начиная с уровня API 1, или вы можете использовать API Google Location Services, который является частью Google Play Services. Последний является рекомендуемым методом для доступа к местоположению Android.
API Google Location Services, являющийся частью Google Play Services, предоставляет более мощную высокоуровневую среду, которая автоматизирует такие задачи, как выбор поставщика местоположения и управление питанием. Службы определения местоположения предоставляют новые функции, такие как обнаружение активности, которые недоступны в API-интерфейсе платформы.
Разработчикам, использующим API-интерфейс платформы, а также тем, кто теперь добавляет в свои приложения информацию о местоположении, настоятельно рекомендуется использовать API-интерфейс Location Services, и это то, что мы рассмотрим в этой статье. Мы будем создавать различные приложения, которые показывают, как получить текущее местоположение пользователя, периодически обновлять его и определять текущую активность пользователя. Например, они ходят, бегают, на велосипеде, в автомобиле и т. Д.
Примечание . Устройство, которое вы используете для тестирования в этом руководстве, должно иметь поддержку Служб Google Play. У вас должно быть устройство под управлением Android 2.3 или более поздней версии, которое включает в себя Google Play Store. Если вы используете эмулятор, вам нужно изображение эмулятора с платформой API Google на базе Android 4.2.2 или выше.
Получение последнего известного местоположения
API определения местоположения сервисов Google Play может запрашивать последнее известное местоположение устройства пользователя, что эквивалентно текущему местоположению пользователя.
Чтобы получить последнее известное местоположение устройства, используйте FusedLocationProviderApi, который позволяет указать требования, такие как требуемая точность определения местоположения. Высокая точность означает больше энергии аккумулятора.
Создайте новый проект Android, назовите его Example01 , установите для Minimum SDK версию 2.3.3 (Gingerbread) и выберите « Пустое действие» в следующем окне, оставьте настройки по умолчанию в последнем окне и нажмите «Готово».
Примечание. Я предполагаю, что вы используете Android Studio 1.4 или более позднюю версию, где шаблоны активности изменились. Шаблон Пустое действие в предыдущих версиях привел к появлению приложения с почти пустым представлением, но теперь он содержит кнопку с плавающим действием. Мы будем использовать Пустое действие для нашего проекта, если вы используете предыдущую версию, затем выберите Пустое действие .
Включите следующую зависимость в файл build.gradle (Module: app) и синхронизируйте файлы gradle.
Чтобы использовать службы определения местоположения, приложение должно запросить разрешение на это. Android предлагает два разрешения на местоположение: ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION . Выбранное вами разрешение определяет точность местоположения, возвращаемого API. Fine Location использует устройство GPS, данные сотовой связи и WiFi, чтобы получить наиболее точную позицию, но это стоит времени автономной работы. Грубое местоположение использует данные сотовой связи устройства и WiFi, чтобы получить местоположение. Он не будет таким же точным, как Fine, но потребляет намного меньше энергии аккумулятора, возвращая местоположение с точностью, эквивалентной городской черте.
Добавьте следующее разрешение в файл AndroidManifest.xml как дочерний элемент тега manifest .
Примечание . Если вы ранее использовали Сервисы Google Play в приложении, вы можете добавить следующее в файл манифеста, в котором указывается номер версии Сервисов Google Play, используемой вашим приложением.
Мы будем использовать провайдера для определения местоположения устройства. Эта информация будет представлена как объект Location, из которого вы можете получить широту, долготу, метку времени и другую информацию, такую как направление, высоту и скорость местоположения.
Приложения, которые мы создадим, будут отображать необработанные данные о широте и долготе найденного местоположения. В реальном приложении вы можете использовать эту информацию, например, для получения адреса местоположения, отображения местоположения на карте , изменения пользовательского интерфейса или отправки уведомления.
Давайте создадим пользовательский интерфейс, который будет отображать значения широты и долготы. Измените Activity_main.xml, как показано.
Добавьте следующее в MainActivity.java .
Создайте два экземпляра TextView , добавив следующее в конце onCreate(Bundle) .
Если вы хотите подключиться к одному из API Google, предоставленному в библиотеке сервисов Google Play, вам необходимо создать экземпляр GoogleApiClient . Клиент Google API предоставляет общую точку входа для всех служб Google Play и управляет сетевым подключением между устройством пользователя и каждой службой Google.
Перед установкой соединения вы всегда должны проверить наличие совместимых сервисов Google Play APK. Для этого либо воспользуйтесь isGooglePlayServicesAvailable() либо присоедините объект GoogleApiClient.OnConnectionFailedListener к своему клиенту и реализуйте его onConnectionFailed() обратного вызова onConnectionFailed() . Мы будем использовать последний подход.
Если соединение не удается из-за отсутствующей или устаревшей версии Google Play APK, обратный вызов получает код ошибки, такой как SERVICE_MISSING , SERVICE_VERSION_UPDATE_REQUIRED или SERVICE_DISABLED .
Измените определение класса, как показано.
Добавьте необходимый импорт и реализуйте следующие методы из двух интерфейсов.
Интерфейс ConnectionCallbacks предоставляет обратные вызовы, которые вызываются, когда клиент подключается или отключается от службы ( onConnected() и onConnectionSuspended() ), а интерфейс OnConnectionFailedListener предоставляет обратные вызовы для сценариев, которые приводят к неудачной попытке подключения клиента к службе ( onConnectionFailed() ).
Перед выполнением любой операции GoogleApiClient должен подключиться с помощью метода connect() . Клиент не считается подключенным, пока не был вызван обратный вызов onConnected(Bundle) .
Когда ваше приложение завершит использование этого клиента, вызовите disconnect() чтобы освободить ресурсы.
Вы должны создать экземпляр объекта client в onCreate(Bundle) вашей Activity, а затем вызвать connect() в onStart() и disconnect() в onStop() .
Добавьте следующие переменные класса, которые будут содержать объекты GoogleApiClient и Location .
В конце метода onCreate() создайте экземпляр клиента API Google с помощью GoogleApiClient.Builder . Используйте конструктор, чтобы добавить API LocationServices .
Измените ранее добавленные методы обратного вызова, как показано.
В onConnected() мы получаем объект Location , вызывая getLastLocation() а затем обновляем пользовательский интерфейс значениями широты и долготы объекта. Возвращаемый объект Location в редких случаях может быть null если местоположение недоступно, поэтому мы проверяем это.
onConnectionSuspended() вызывается, если соединение потеряно по какой-либо причине, и здесь мы пытаемся восстановить соединение. Если соединение не удается, onConnectionFailed() и мы просто записываем код ошибки. Вы можете просмотреть доступные коды ошибок здесь .
Переопределите onStart() и onStop() как показано.
Они запускают и отключают соединение со службой, когда это необходимо.
Запустите приложение, и вы должны увидеть широту и долготу.

Вы можете скачать завершенный проект Example01 здесь .
Получение периодических обновлений местоположения
Некоторым приложениям, например, приложениям для фитнеса или навигации, может потребоваться непрерывное отслеживание данных о местоположении. Хотя вы можете получить местоположение устройства с помощью getLastLocation() , более прямым подходом является запрос периодических обновлений у провайдера слияния местоположения. Затем API будет периодически обновлять ваше приложение в соответствии с наилучшим доступным местоположением на основе доступных в настоящее время поставщиков местоположения, таких как WiFi и GPS. Точность местоположения определяется поставщиками, запрошенными разрешениями местоположения и параметрами, указанными в запросе местоположения.
Создайте другой проект с настройками, аналогичными настройкам последних проектов, и назовите его Example02 .
Добавьте зависимость сервисов воспроизведения в файл build.gradle (Module: app) .
Добавьте разрешение в файл манифеста.
Измените activity_main.xml, как показано ниже.
Измените определение класса MainActivity .
Сделайте необходимый импорт. Для импорта из LocationListener импортируйте import com.google.android.gms.location.LocationListener а не другой предлагаемый импорт.
LocationListener используется для получения уведомлений от FusedLocationProviderApi когда местоположение изменилось.
Реализуйте методы из трех интерфейсов.
Метод onLocationChanged() вызывается при изменении местоположения.
Добавьте следующие переменные класса.
LocationRequest – это объект данных, который содержит параметры качества обслуживания для запросов к FusedLocationProviderApi . Скоро увидим его использование.
Измените onCreate() как показано ниже, чтобы переопределить onStart() и onPause() .
Это похоже на то, что мы делали в предыдущем примере, поэтому нет необходимости объяснять.
Измените ранее реализованные методы интерфейса, как показано ниже.
В onConnected() мы создаем объект LocationRequest который хранит параметры для запросов к объединенному провайдеру местоположения. Параметры определяют требуемые уровни точности. Чтобы узнать обо всех параметрах, доступных в запросе местоположения, см. Ссылку на класс LocationRequest . В нашем примере мы устанавливаем приоритет, интервал обновления и самый быстрый интервал обновления.
setPriority() устанавливает приоритет запроса, который дает сервисам определения местоположения сервисов Google Play setPriority() подсказку о том, какие источники местоположения использовать. Поддерживаются следующие значения:
- PRIORITY_BALANCED_POWER_ACCURACY : Используйте этот параметр, чтобы запросить точность определения местоположения с точностью до городского квартала, что составляет приблизительно 100 метров. Это считается грубым уровнем точности и может потреблять меньше энергии. С этим параметром службы определения местоположения, вероятно, будут использовать WiFi и позиционирование сотовой вышки. Обратите внимание, что выбор поставщика местоположения зависит от других факторов, таких как доступные источники.
- PRIORITY_HIGH_ACCURACY : используйте этот параметр, чтобы запросить наиболее точное местоположение. С этим параметром службы определения местоположения с большей вероятностью будут использовать GPS для определения местоположения.
- PRIORITY_LOW_POWER : используйте этот параметр, чтобы запросить точность на уровне города, которая составляет приблизительно 10 километров. Это считается грубым уровнем точности и может потреблять меньше энергии.
- PRIORITY_NO_POWER : используйте этот параметр, если вам необходимо незначительное влияние на энергопотребление, но вы хотите получать обновления местоположения, когда они доступны. С этим параметром ваше приложение не вызывает обновлений местоположения, но получает местоположения, инициированные другими приложениями.
Метод setInterval() устанавливает желаемый интервал в миллисекундах для активных обновлений местоположения. Этот интервал неточен. Вы можете вообще не получать обновления, если нет доступных источников местоположения, или вы можете получать их медленнее, чем требуется. Вы можете получать обновления быстрее, чем требуется, если другие приложения запрашивают местоположения с более быстрым интервалом.
Метод setFastestInterval() устанавливает максимальную скорость для активных обновлений местоположения. Этот интервал является точным, и ваше приложение никогда не будет получать обновления быстрее, чем это значение. Вы должны установить эту скорость, потому что другие приложения будут влиять на скорость отправки обновлений. API определения местоположения сервисов Google Play отправляют обновления с максимальной скоростью, которую запрашивает любое приложение с помощью setInterval() . Если эта скорость выше, чем может выдержать ваше приложение, у вас могут возникнуть проблемы с мерцанием пользовательского интерфейса или переполнением данных. Чтобы предотвратить это, вы устанавливаете верхний предел частоты обновления.
С настроенным запросом местоположения мы вызываем requestLocationUpdates() для запуска регулярных обновлений.
Метод onLocationChanged() вызывается с обновленным местоположением. Здесь мы обновляем интерфейс с информацией о местоположении. Мы также отправили сообщение Toast, показывающее время обновления.
Запустите приложение, и вы увидите обновленные данные о местоположении, если продвинетесь достаточно далеко, чтобы показания изменились.

Завершенный проект Example02 можно скачать здесь .
Признание деятельности
Помимо определения местоположения вашего устройства Android, API Служб определения местоположения Google также можно использовать для обнаружения действий, которые может выполнять устройство и, следовательно, пользователь. Он может обнаруживать такие действия, как пользователь, находящийся пешком, в транспортном средстве, на велосипеде или еще. Это не дает определенных данных, только вероятность того, что какая-то деятельность происходит. Программист должен прочитать эти данные и решить, что с ними делать.
Для начала создайте новый проект с именем Example03 с теми же настройками, что и в предыдущих двух проектах.
Включите зависимость в файл build.gradle (Module: app) и синхронизируйте файлы gradle.
В файле манифеста включите следующее разрешение на распознавание активности в качестве дочернего элемента тега manifest .
Измените activity_main.xml, как показано ниже.
Обычно приложения, использующие распознавание активности, отслеживают действия в фоновом режиме и выполняют действие при обнаружении определенного действия. Для этого без необходимости службы, которая всегда работает в фоновом режиме и потребляет ресурсы, обнаруженные действия доставляются через Intent . Приложение задает PendingIntent вызов PendingIntent (обычно IntentService ), который будет вызываться с намерением при обнаружении действий. Получатель намерения может извлечь ActivityRecognitionResult с помощью extractResult (android.content.Intent) .
Перед классом IntentService создайте класс с именем Constants и измените его, как показано. Он будет содержать некоторые постоянные значения, которые мы будем использовать позже.
Далее мы создаем IntentService . Создайте класс ActivitiesIntentService и сделайте так, чтобы он расширял IntentService . Измените содержимое, как показано.
В приведенном выше классе требуется конструктор. Он вызывает супер конструктор IntentService(String) с именем рабочего потока.
В onHandleIntent() мы получаем ActivityRecognitionResult из Intent с помощью extractResult() . Затем мы используем этот результат для получения списка массивов объектов DetectedActivity . Каждое действие связано с уровнем достоверности, который является целым int от 0 до 100. Затем мы создаем новое намерение, по которому мы собираемся отправлять обнаруженные действия. Наконец, мы транслируем Намерение, чтобы его можно было подобрать.
Вставьте следующее в файл манифеста, чтобы система Android знала об услуге. Это должен быть дочерний тег application .
В MainActivity реализуйте интерфейсы ConnectionCallbacks и OnConnectionFailedListener .
Произведите необходимый импорт и реализуйте свои методы.
Вы увидите ошибку, поскольку мы еще не создали переменную mGoogleApiClient .
Добавьте следующие переменные в MainActivity .
Вставьте следующее в конце onCreate() .
Обратите внимание, что мы добавляем ActivityRecognition.API при создании клиента API Google, а не API местоположения, как мы делали в предыдущих примерах.
Включите onStart() и onStop() для подключения и отключения клиента.
В классе ActivitiesIntentService мы передаем Intent, который имеет массив обнаруженных действий, и нам нужен класс-получатель для его получения. Прежде чем мы создадим это, включите следующие strings в strings.xml . файл.
В MainActivity добавьте следующий метод, который мы будем использовать позже в нашем BroadcastReciever . Это берет код для обнаруженного типа действия и возвращает соответствующую строку, связанную с действием.
Добавьте следующий подкласс в MainActivity который расширяет BroadcastReceiver .
Выше мы получаем массив обнаруженных действий и перебираем их, получая тип и достоверность каждого из них. Затем мы добавляем это в строку и обновляем интерфейс с помощью строки.
В MainActivity добавьте следующую переменную.
Затем onCreate() его экземпляр в onCreate() после оператора, который создает экземпляр mDetectedActivityTextView
Добавьте следующие методы в MainActivity .
Затем измените определение класса, чтобы реализовать ResultCallback поскольку в приведенном выше коде мы установили обратный вызов результата для this .
Первый метод, описанный выше, использует requestActivityUpdates() для регистрации обновлений распознавания активности, а второй отменяет регистрацию. Активность обнаруживается путем периодического пробуждения устройства и считывания коротких пакетов данных датчика. Он использует датчики малой мощности, чтобы минимизировать потребление энергии. Интервал обновления обнаружения активности можно контролировать вторым параметром. Большие значения приведут к меньшему количеству обнаружений активности при увеличении срока службы батареи. Меньшие значения приведут к более частому обнаружению активности, но потребляют больше энергии, так как устройство должно просыпаться чаще. Действия могут появиться через несколько секунд после запрошенного интервала, если службе обнаружения активности требуется больше выборок, чтобы сделать более точный прогноз.
ResultCallback следующий метод ResultCallback который принимает состояние и выводит различные сообщения в зависимости от него.
Добавьте следующее в MainActivity .
Это регистрирует и отменяет регистрацию приемника вещания, когда активность возобновляется и приостанавливается соответственно.
Запустите приложение, и после нажатия кнопки «Запросить обновления активности» вы должны начать получать обновления активности. Возможно, вам придется подождать несколько секунд, чтобы обновления начали показываться.

Завершенный проект Example03 можно скачать здесь .
Вывод
Мы не исчерпали все возможности API-интерфейсов определения местоположения Сервисов Google Play, есть некоторые темы, которые мы не затронули, такие как геозона , получение адреса местоположения и отображение местоположения на карте. Мы рассмотрим тему в статье «Карты», которая станет частью этой серии сервисов Google Play.
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы или комментарии ниже .
Location services: Which option is right for you?

Android phones come with a few options for location services, and these are useful for map apps, locating nearby shops, restaurants, and the like, but which one is the right one for you to use? Let’s clarify the differences and help you out.
How to choose location services options
To find and select your location services if your phone uses Android 7 (Nougat):
- Tap the Settings button in your App Drawer.
- Tap Location under the Personal menu.
- Tap Mode.
- Tap the option you want to use for your location service.
To find and select your location services if your phone uses Android 8 (Oreo):
- Launch Settings from the notification shade.
- Tap Security & Location in the main menu.
- Tap Location under the Privacy heading.
- Tap Mode.
- Tap the option you want to use for your location service.
Now let’s have a look at each of the three options and see what they mean.
High accuracy
When you select the High accuracy location service mode, you are allowing multiple networks to pinpoint your precise location (hence the name High accuracy). It calls upon every service available: GPS, Wi-Fi, Bluetooth, and/or cellular networks in whatever combination available, and uses Google’s location services to provide the most accurate location.
Your phone’s location will be fairly accurate, and down to the street corner you’re standing on or the home address you’re living at or visiting. You’ll probably want this mode turned on if you’re looking for turn-by-turn directions.
Battery saving
Eliminating GPS will save your battery life a fair amount. Battery saving mode uses less battery-intensive location sources (Wi-Fi, Bluetooth, and/or nearby cell towers) to figure out where you are using Google’s location services. This will not be as accurate as using GPS, but you will still get a close approximate location and your maps or apps might still point you in the right direction, depending on how many cellular towers, registered Wi-Fi hotspots and Bluetooth beacons are in range.
If you need to know where you are but want to save as much battery as you can, give this a try.
Device only
Device only mode relies solely on the GPS radio signal built into your Android phone. It works in much the same way that a GPS device for cars does, using the GPS-designated network of satellites to find your phone’s location. This means it will work in places where you won’t find enough Wi-Fi, cellular towers, and Bluetooth beacons to get a proper location. The GPS radio uses more battery power and doesn’t work reliably unless you are outside.
Which one’s right for you?
That depends on what you need location services for. If you want turn-by-turn directions or need a precise location for an app like Pokemon Go or Ingress, you’ll need to use High accuracy mode. If you only need an approximate location and being within a general area is good enough, Battery saving mode will work fine. If you’re somewhere with poor phone service or a place with a lot of tall buildings Device only mode will provide the same location as High accuracy mode will because you’re really only using the GPS service to see where you are.
Our recommendation is to use High accuracy mode when you need location services unless you see a significant loss in battery life.
And remember, you can always turn location services Off if you would rather not let apps know where you are, but the apps may not work correctly. See why an app wants to know where you are and decide if it’s worth sharing with the app developers.
Updated January 2018: Updated screenshots for the current OS.
Get the Android Central Newsletter
Instant access to breaking news, the hottest reviews, great deals and helpful tips.
By submitting your information you agree to the Terms & Conditions and Privacy Policy and are aged 16 or over.