Я хочу создать приложение, которое сосредотачивается вокруг получения текущего местоположения пользователя, а затем найдет точки интереса (например, бары, рестораны и т.д.), которые находятся рядом с ним через API Google Адресов. > .
При поиске в Интернете для начала запуска я наткнулся на некоторые руководства, в которых используется класс LocationManager и некоторые другие, которые используют Службы Google Play, чтобы найти местоположение пользователей.
На первый взгляд, оба они делают одно и то же, но поскольку я новичок в этом, я немного смутился, и я не знаю, какой метод лучше всего подходит моим потребностям. Итак, я хочу спросить вас:
Каковы различия между этими двумя методами поиска местоположений (если они есть)?
Лучший ответ:
Расположение пользователя на Android
Получить местоположение пользователя на Android немного проще, чем на iOS. Чтобы начать путаницу, есть два совершенно разных способа сделать это. Первый использует API-интерфейсы Android от android.location.LocationListener , а второй – API-интерфейсы сервисов Google Play com.google.android.gms.location.LocationListener . Давайте пройдем через них обоих.
Как работают навигационные системы GPS и ГЛОНАСС
- Android Location API API определения местоположения Android используют три разных провайдера для определения местоположения.
- LocationManager.GPS_PROVIDER – этот провайдер определяет местоположение с помощью спутников. В зависимости от условий этому провайдеру может потребоваться некоторое время для возврата местоположения.
- LocationManager.NETWORK_PROVIDER – этот поставщик определяет местоположение на основе доступности вышки сотовой связи и точек доступа WiFi. Результаты извлекаются с помощью поиска в сети.
- LocationManager.PASSIVE_PROVIDER – этот провайдер возвращает местоположения, созданные другими провайдерами. Вы пассивно получаете обновления местоположения, когда другие приложения или службы запрашивают их, фактически не запрашивая местоположения самостоятельно.
Суть его в том, что вы получаете объект LocationManager из системы, внедряете LocationListener и вызываете requestLocationUpdates для LocationManager .
Вот фрагмент кода:
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Define a listener that responds to location updates LocationListener locationListener = new LocationListener() < public void onLocationChanged(Location location) < // Called when a new location is found by the network location provider. makeUseOfNewLocation(location); >public void onStatusChanged(String provider, int status, Bundle extras) <> public void onProviderEnabled(String provider) <> public void onProviderDisabled(String provider) <> >; // Register the listener with the Location Manager to receive location updates locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
Руководство Googles API по стратегиям размещения довольно хорошо объясняет код. Но они также отмечают, что в большинстве случаев вы получите лучшую производительность батареи, а также более высокую точность, используя вместо этого API Google Location Services. Теперь путаница начинается!
Googles Location Services API является частью Google Play Services APK (вот как его настроить). Они построены на основе Androids API. Эти API предоставляют “Поставщик слияния” вместо провайдеров, упомянутых выше. Этот провайдер автоматически выбирает, какого основного провайдера использовать, основываясь на точности, использовании батареи и т.д.
Это происходит быстро, потому что вы получаете местоположение из общесистемной службы, которая постоянно обновляет ее. И вы можете использовать более продвинутые функции, такие как геозоны.
Для использования Служб определения местоположения Googles вашему приложению необходимо подключиться к GooglePlayServicesClient . Чтобы подключиться к клиенту, ваша деятельность (или фрагмент, или около того) должна реализовывать интерфейсы GooglePlayServicesClient.ConnectionCallbacks и GooglePlayServicesClient.OnConnectionFailedListener . Вот пример кода:
- Почему locationClient.getLastLocation() null?
locationClient.getLastLocation() получает последнее известное местоположение от клиента. Однако провайдер Fused Location будет поддерживать фоновое местоположение только в том случае, если к нему подключен хотя бы один клиент. Как только первый клиент подключится, он сразу попытается определить местоположение. Если ваша деятельность является первым клиентом, подключившимся, и вы сразу же getLastLocation() в onConnected() , этого может не хватить времени для onConnected() первого местоположения. Это приведет к тому, что location будет null .
Чтобы решить эту проблему, нужно подождать (неопределенно), пока провайдер не получит местоположение, а затем вызвать getLastLocation() , что невозможно узнать. Другой (лучший) вариант – реализовать интерфейс com.google.android.gms.location.LocationListener для получения периодических обновлений местоположения (и отключать его после первого обновления).
В этом коде вы проверяете, есть ли у клиента последнее местоположение (в onConnected ). Если нет, вы запрашиваете обновления местоположения и отключаете запросы (в onLocationChanged() ), как только вы получаете обновление.
Обратите внимание, что locationClient.requestLocationUpdates(locationRequest, this); должен быть внутри обратного вызова onConnected , иначе вы получите IllegalStateException поскольку вы будете пытаться запрашивать местоположения, не подключенные к клиенту Google Play Services.
- Пользователь отключил Службы определения местоположения
Во многих случаях у пользователя могут быть отключены службы определения местоположения (для экономии заряда аккумулятора или по соображениям конфиденциальности). В таком случае приведенный выше код будет по-прежнему запрашивать обновления местоположения, но onLocationChanged никогда не будет вызываться. Вы можете остановить запросы, проверив, отключил ли пользователь службы определения местоположения.
Если ваше приложение требует, чтобы они включили службы определения местоположения, вы хотели бы показать сообщение или тост. К сожалению, нет способа проверить, отключил ли пользователь сервисы определения местоположения в Googles Location Services API. Для этого вам придется вернуться к Androids API.
В вашем методе onCreate :
LocationManager manager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) !manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) < locationEnabled = false; Toast.makeText(getActivity(), «Enable location services for accurate data», Toast.LENGTH_SHORT).show(); >else locationEnabled = true;
И используйте флаг locationEnabled в вашем методе onConnected следующим образом:
if (location != null) < Toast.makeText(getActivity(), «Location: » + location.getLatitude() + «, » + location.getLongitude(), Toast.LENGTH_SHORT).show(); >else if (location == null locationEnabled)
ОБНОВИТЬ
Документ обновлен, LocationClient удален и API поддерживает включение GPS одним щелчком мыши из диалогового окна:
Новый клиент местоположения: FusedLocationProviderClient
Рекомендуется пройти через https://developer.android.com/training/location перед выполнением каких-либо задач определения местоположения.
По моему опыту, “более подходящая точность” вовсе не означает лучшего. Если я что-то не хватает, если вы хотите убедиться, что GPS используется, LocationManager – единственный способ пойти. Мы отслеживаем транспортные средства с нашим приложением, и, опять же, если я чего-то не хватает, службы Google Play предоставляют довольно неточные местоположения довольно часто.
Вместо LocationManager вы должны использовать местоположение Google Play Services api. Согласно документам:
API местоположения сервисов Google Play предпочтительнее, чем Android API определения местоположения (android.location) как способ добавления местоположения осведомленность о вашем приложении. Если вы в настоящее время используете Android API определения местоположения, вам настоятельно рекомендуется переключиться на API Google Apps для сервисов Google как можно скорее.
Что касается того, зачем переключаться, Google говорит следующее:
API служб геолокации Google, входящий в состав Служб Google Play, обеспечивает более мощную, высокоуровневую структуру, которая автоматически обрабатывает поставщиков местоположения, перемещение пользователей и точность определения местоположения. Это также обрабатывает планирование обновления местоположения на основе энергопотребления параметры, которые вы предоставляете. В большинстве случаев вы получите лучшую батарею производительности, а также более подходящую точность, используя API служб местоположения.
Я уже давно пользуюсь API Google Location Services. Он имеет свои преимущества, поскольку включает в себя сложность наличия нескольких источников для определения позиций. Однако он слишком сильно инкапсулируется, поэтому, когда вы получаете странную позицию, у вас нет возможности определить, откуда эта странная позиция появилась.
В реальной жизни у меня появилось несколько странных ценностей, находящихся в 10 километрах от реальной позиции. Единственное объяснение состоит в том, что эти сумасшедшие местоположения происходят из-за ошибок в базах данных Googles Wi-Fi или NWK – ошибок, которые будут всегда, поскольку топологии Wi-Fi и сети меняются каждый день. Но, к сожалению (и удивительно), API не дает вам никакой информации о том, как была получена отдельная позиция.

Это оставляет вам проблемы с необходимостью отфильтровывать странные значения на основе проверки правдоподобности по скорости, ускорению, азимуту и т.д.
… или вернитесь к старому доброму API фреймворка и используйте только GPS, что я и решил делать, пока Google не улучшит слитый API.
API Google Location Services API, входящий в состав Google Play Services, предоставляет более мощную инфраструктуру высокого уровня, которая автоматически обрабатывает поставщиков местоположения, пользовательское перемещение и точность определения местоположения. Он также обрабатывает планирование обновления местоположения на основе параметров энергопотребления, которые вы предоставляете. В большинстве случаев вы получите лучшую производительность батареи, а также более подходящую точность, используя API служб местоположения.
Более подробные различия между двумя apis API-интерфейсом Google Play Service API и Android Framework Location API можно найти здесь
Да, API Служб определения местоположения Служб Google Play может вводить в заблуждение информацию о Местоположении. Модемы WiFi перемещаются, модемы WiFi обновляются с неверной информацией о местоположении (то есть, если местоположение подделывается устройством Android, которое обновляет местоположение модема WiFi), и существует множество других обстоятельств, которые могут привести к неправильным данным местоположения из триангуляции модема WiFi. Во всех наших приложениях, где точное местоположение является обязательным, мы используем только GPS.
Различия между двумя API API определения местоположения службы Google Play и API определения местоположения Android Framework на основе службы GPS
FusedLocationProviderClient
- Для 1-го извлечения местоположение не должно быть нулевым (т.е. некоторые другие приложения должны обновить последнее известное местоположение в базе данных GoogleplayService. Если оно пустое, необходимо обойти это)
- Для следующей последовательной выборки используется метод requestLocationUpdates() для извлечения местоположения.
- Выборка местоположения основана только на locationRequest.setInterval(milliseconds) и setFastestInterval(milliseconds) , а не на изменении местоположения пользователя
- Возвращенное значение LatLng содержит только 7 десятичных значений (например: 11.9557996, 79.8234599), не так точно
- Рекомендуется, когда требование вашего приложения принимает текущее местоположение на расстоянии, пренебрежимо малом (точность 50 – 100 метров)
- Эффективно при использовании аккумулятора.
LocationManager Api
- Выборка местоположения пользователя вызывается с помощью locationManager.requestLocationUpdates()
- Выбор местоположения на основе изменения местоположения пользователя и временных интервалов locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, milliseconds, mindistance, Mylocationlistener)
- Возвращенное значение LatLng содержит 14 десятичных значений(например:11.94574594963342 79.81166719458997)точныезначения местоположения
- Рекомендуется для приложения на основе определения местоположения, когда требуется большая точность даже в метрах.
- Использование батареи зависит от интервала выборки и расстояния выборки.
LocationManager
Как указано в официальной документации, этот класс позволяет вам использовать службы для местоположения, периодически обновлять географическое положение устройства или отправлять “намерения” приложениям, чтобы сказать, что устройство близко заранее определенное место. API требует ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION
Службы API определения местоположения Google
Он полностью несовместим с LocationManager, но в отношении работы в реальном времени существуют некоторые принципиальные различия.
Преимущества и недостатки
Что касается Google Location API Services, то если мы сравним его с LocationManager, то заметим значительное повышение производительности и стабильности во время использования. Например, была общая проблема с LocationManager, получающим предыдущие местоположения или обновления карты, когда параметры были установлены для минимального периода времени и расстояния, на которое устройство должно быть смещено для последующих обновлений; один из параметров обычно игнорировался. В Google Location API Services эта проблема не встречалась. Кроме того, Службы определения местоположения Google потребляют меньше заряда аккумулятора.
В результате сервисы Google Location API работали лучше во всех случаях. Однако есть и некоторые недостатки. Чтобы использовать Службы определения местоположения, необходимо установить Службы Google Play.
Поэтому на устройствах с обычной прошивкой, которые не поддерживаются Google или в которых недоступны службы Google, приложение не будет работать. Это очень важный момент, который необходимо учитывать. Исследования в этой области выявили тот факт, что большинство пользователей не имеют Google Play Services. Например, они недоступны в Китае из-за национальной политики, и это значительная часть рынка, которую нельзя игнорировать. В этом случае необходимо обратиться к LocationManager.
Google Location API Services – лучшее решение для работы с картами. Этот API позволяет работать с самыми точными координатами и с минимальными затратами с точки зрения мобильных ресурсов, если пользователь установил Сервисы Google Play; в противном случае единственным решением является LocationManager.
Источник: techarks.ru
Что такое locations на андроид
Наша статья расскажет о системном приложении LocationEM2, а вы поймете что это за программа и за что она отвечает на телефоне.
Многие при покупке телефона обращают внимание на большое количество предустановленных приложений и наличие неизвестных системных функций. Каждая фирма производитель, помимо стандартного софта, старается добавить свои приложения для удобной работы с Андроид-устройствами. Но все ли они необходимы для телефона? Одним из таких приложений является LocationEM2.

LocationEM2 (или Location Engineer Mode) — это предустановленное приложение для тестирования уровня GPS-сигнала на телефоне. Программа обрабатывает полученные данные и определяет количество доступных спутников и уровень получаемого сигнала. Работает приложение даже с отключенной функцией AGPS или EPO.
Данная программа присутствует в ОС Андроид большинства китайских смартфонов и имеет доступ к настройкам местоположения и геолокации устройств. Location Engineer Mode вызывается и настраивается в инженерном меню Андроида, для этого нужно пройти в пункт «Location Based Service».

Благодаря данным, полученным от приложения, вы сможете выбрать и подключить необходимый сервер местоположения для Assisted-GPS Андроида.
AGPS — система, позволяющая улучшить характеристики запуска и время первого определения местоположения (TTFF) GPS-спутников.
Приложение будет очень полезно для пользователей, которые постоянно нуждаются в стабильной и правильной работе мобильного навигатора, поэтому удалять или замораживать LocationEM2 нежелательно.
Надеюсь вы разобрались с предназначением Location Engineer Mode и поняли что это такое.
Location Services Android как отключить

Компания Google знает практически все о пользователях 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 имеет как плюсы, так и минусы. Благодаря определению местоположения, вы можете отслеживать свое перемещение или найти мобильное устройство в случае, если оно будет утеряно. При этом придется свыкнуться с мыслью, что Большой Брат следит за вами. Источник
Глубокое погружение в определение местоположения
Этот пост является переводом топика из блога android-developers. Далее повествование ведется от Рето Майера, автора книги Professional Android 2 Application Development. Он пишет о том, как можно улучшить приложения, использующие местоположение, в смысле кэширования результатов, скорости работы и так далее.
Без разницы, ищете ли вы место, где бы поесть, или ближайшее место велосипедов Boris Bike, всегда есть задержка при получении данных местоположения от GPS и заполнении абстрактного списка результатов в вакууме. Когда вы находитесь в месте, где хотели бы получить контекстную информацию, то часто вы сталкиваетесь с отсутствием подключения к данным. Вместо того, чтобы грозить кулаком в небо, я написал open-source приложение, которое включает в себя советы и рекомендации по сокращению времени между открытием приложения и просмотром актуальной информации о близлежащих местах, вкупе с разумным обеспечением offline режима работы. И всё это, сохраняя использование аккумулятора на возможном минимуме.
Покажи мне код!
Вы можете проверить мой проект Android Protips for Location. Не забудьте прочесть Readme.txt, чтобы успешно скомпилировать и запустить приложение.
Что оно делает на самом деле?
Оно использует Google Places API для реализации базовой функциональности приложений, которые которые используют местоположение для определения списка близлежащих достопримечательностей (точек на карте), позволяют просмотреть их детали, а также проверить или оценить. Код реализует многие из лучших практик, о которых я подробно рассказал на своей сессии на Google I/O 2011, Android Protips: Advanced Topics for Expert Android Developers (видео). В том числе использование Intent’ов для получения обновлений о местоположении, используя Passive Location Provider, наблюдение за состоянием устройства для изменения частоты обновлений, переключение Receiver’ов во время исполнения приложения, и также используя Cursor Loader. Приложение написано для Honeycomb, но также может работать и на версия 1.6 и выше.
Теперь у вас есть код, давайте подробнее рассмотрим его
- Текущее местоположение должно находиться так быстро, как это возможно
- Список мест должен обновляться при изменение местоположения
- Список близлежащих мест должен быть доступен (в деталях) в автономном режиме
- Отметки также должны быть доступны в автономном режиме
- Данные о местоположении и другие данные пользователя должны быть правильно обработаны (см. более ранний пост с лучшими практиками )
Свежесть — значит никогда не ждать
Можно значительно сократить время ожидания получения первого приближения к местоположению, путём выбора последнего известного из Location Manager’a каждый раз, когда приложение переходит в активный режим.
В этом примере из GingerbreadLastLocationFinder, мы перебираем все провайдеры местоположения на устройстве, даже те, которые на данный момент недоступны, чтобы найти наиболее точное последнее местоположение.
Если есть координаты одного или более местоположений, то выбирается самое точное. Иначе, просто возвращается самый недавний результат.
Во втором случае (когда определено, что последнее обновление местоположения недостаточно недавнее), значение так или иначе возвращается, но мы запрашиваем одно обновление местоположения, используя самый быстрый провайдер.
К сожалению, мы не можем определить наибыстрейших провайдеров, но, на практике, понятно, что определение местоположения при помощи сети возвращает результаты быстрее.
Отметим также, что этот фрагмент кода показывает GingerbreadLastLocationFinder, который использует метод requestSingleUpdate для получения единоразового обновления местоположения. Эта функциональность не была доступна до Gingerbread — проверьте LegacyLastLocationFinder, посмотрите как я реализовал такую же функциональность для более ранних версий Android.
singleUpdateReceiver передает полученное обновление назад к вызывающему классу через слушателя Location Listener.
Используйте Intent’ы для получения обновлений местоположения
Получив наиболее точную/своевременную оценку текущей позиции, мы также хотим получать её обновления.
Класс PlacesConstants включает в себя набор значений, которые определяют частоту обновления местоположения. Настройте их, чтобы убедиться, что обновления приходят так часто, как это требуется.
Следующий шаг — запросить обновление местоположения от Location Manager. В следующем фрагменте кода, взятом из GingerbreadLocationUpdateRequester мы можем передать критерии, используемые для определения — какой Location Manager будет запрашивать обновления напрямую в вызове метода requestLocationUpdates.
Обратите внимание, что мы передаём Pending Intent, а не Location Listener.
Вообще, я предпочитаю использовать Location Listener’ов, потому что они предоставляют гибкость в регистрации приёмников в нескольких Activity или Сервисах, или напрямую в манифесте.
В этом приложении, новое местоположение означает обновленный список близлежащих мест. Это происходит через сервисы, которые отправляют запросы к серверу и обновляют Контент-провайдер, который заполняет список мест.
Так как изменение местоположения напрямую не обновляет UI, то имеет смысл создавать и регистрировать связанный LocationChangedReceiver в манифесте, а не в Activity.
LocationChangedReceiver извлекает местоположение из каждого обновления и запускает сервис PlaceUpdateService, чтобы обновить базу близлежащих мест.
Получение данных во время автономной работы
Чтобы добавить поддержку режима offline, мы начнём с кэширования результатов поиска по PlacesContentProvider и PlaceDetailsContentProvider.
Также, при определенный обстоятельствах нужно проводить выборку сведений о местоположении. Этот фрагмент кода из сервиса PlacesUpdateService демонстрирует, как предварительная выборка включается для ограниченного количества мест.
Обратите внимание на то, что предварительная выборка данных потенциально выключается при низком заряде аккумулятора.
Похожая техника используется для реализации offline отметок.
Оптимизация времени работы аккумулятора: умные сервисы и использование состояния устройства для переключения ресиверов
Нет смысла запускать сервис обновления, когда устройство находится в автономном режиме. Сервис PlaceUpdateService проверяет возможность соединения, прежде чем пытаться получить обновление.
Если соединения нет, то ActiveLocationChangedReceiver и PassiveLocationChangedReceiver выключаются, а ConnectivityChangedReceiver включается.
ConnectivityChangedReceiver прослушивает все изменения сетевого соединения. Когда производится новое подключение, то он просто выключает себя и включает слушателей местоположения.
Мониторинг состояния аккумулятора для уменьшения функциональности и экономии энергии
Когда телефон на последних 15%, то большинство приложений не работает, для того чтобы сохранить заряд. Мы можем зарегистрировать ресиверов в манифесте, чтобы выдавать предупреждение, когда устройство входит или выходит из состояния низкой батареи.
Этот фрагмент из PowerStateChangedReceiver выключает PassiveLocationChangedReceiver всякий раз, когда устройство переходит в состояние низкого аккумулятора и включает его, когда заряд в порядке.
Можно расширить эту логику, отключив все упреждающие выборки или уменьшив частоту обновления в условиях низкого заряда аккумулятора.
Постоянно выскакивает location services android как удалить
Всем привет! В данной статье расскажем о небольшой проблеме на которую жалуются пользователи использующие андроид устройства. У пользователей телефонов и планшетов всплывает сообщение location services, особенно часто появляется у пользователей с аппаратами от lenovo. После разблокировки экрана видно черный экран со значком, выскакивает сообщение location services. Пример такого окна видно на скрине ниже:

location services android
Данное окно может и не выскакивать, но временами может висеть до 5-10 секунд после разблокирования дисплея, а потом исчезает.
В списке установленных утилит ее нет, а при сканировании антивирусом — проблем не обнаруживается.
Что такое location services в android?
Location services это системное приложение. Само по себе оно не несет никакой опасности, а всего лишь отвечает за функцию геолокиции. В последнее время разработчики софта, программ и игр внедряют данную функцию во все утилиты. Самые популярные — это Вконтакте, фейсбук, инстаграмм, различные программы для знакомств типа Badoo и прочие.
Данная функция слежения есть в каждом брендовом софте или игре. И когда необходимо получить координаты телефона или определить местонахождение — утилита обращается к сервисам геолокации и запускается служба location services, с помощью которой по спутникам GPS и координатам сети данные передаются из системной программки в запущенную на устройстве на данный момент. Например при публикации фотографии в вк и включении отображения Вашего местонахождения. Даже запущенная камера может активировать эту функцию.
Как отключить сообщение location services?
Первым делам в настройках можно отключить определение местоположения. Убираем галочки «по спутникам gps» и по «координатам сети». Если проблема осталась — посмотрим какие еще утилиты определяют ваше местоположение. Заходим в настройки планшета или телефона. Найдите пункт «Местоположение» и нажмите туда.
В списке отобразятся последние утилиты запрашивающие геоданные.
- Итак, перейдем в Настройки смартфона или планшета;
- Нас интересует пункт меню Местоположение — зайдем туда;
- В пункте «История местоположений» необходимо отключить галочку с пункта истории — так сервисы гугл перестанут сохранять информацию с вашего устройства(во что слабо верится на самом деле );
- В списке Последние геозапросы отображается список программ и приложений, имеющих доступ к нашему местоположению . Приложений которые последний раз определяли ваше местоположение и активировали геолокацию отображаются вверху в списке;
- Если софт не используется — смело удаляйте;
В случае если приложение необходимо есть другой способ — можно для конкретного приложения отключить эту опцию.
Для существует специальная программа. Запускаем Play Market, в поиске пишите AppOps.
Данная программа находится в бесплатном доступе, весит немного и справляется с задачей. Утилита позволяет запретить отправку местоположения в каждой игре или программе установленной на устройстве. После закачивания и установки запускайте AppOps. В списке всех приложение находите нужное и нажимаете на него. Нас интересует пункт Location.
Переводим переключатель в положение «OFF» и программа получит запрет на отправку данных. AppOps обладает другим полезным набором функций, среди которых можно запретить приложениям:
- Определение местоположения, слежение;
- Чтение контактов телефона;
- Изменение настроек(программы могут обладать большими полномочиями в управлении состоянием телефона);
- Вывод сообщений в шторку устройства;
- Использовать камеру;
- Использовать микрофон, записывать аудио;
- Читать сообщения смс и ммс;

окно программы appops
При установке любого приложения обязательно просматривайте права доступа к телефону и разрешение на внесение изменений.
Надеюсь вы разобрались почему всплывает сообщение location services и как это исправить.
Видео на английском как отключить location services в IOS, для Android действия схожие:
Евгений Загорский
IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.
Источник: asus-zenfone.ru