Обновления местоположения Android

Я пытаюсь сделать приложение, основанное на точном местоположении, но я немного запутался в том, как работает /questions/tagged/requestlocationupdates.

  1. Если я поставлю requestlocationUpdates(LocationManager.GPS_PROVIDER, , ); в качестве поставщика местоположения, и я тестирую свое приложение. Я вижу, что если я не включил gps, он получает обновления из сети, а когда он включен, он получает его от gps. Какой смысл настраивать сетевых провайдеров и провайдеров GPS на отправку обновлений, если они включаются самостоятельно?

  2. Как работает третий параметр requestlocationUpdates Работа? Я имею в виду, что это говорит об изменении расстояния, которое я установил, но как он может определить, что я переехал?

2 ответа

  1. имейте в виду, что как только вы requestLocationUpdates(...) означает, что onLocationChanged (...) будет срабатывать, когда указанный поставщик включен, и вы получите последнюю координату в методе onLocationChanged. Существует местоположение по умолчанию, известное как Cache location или LastKnownLocation, которое эта система будет использовать перед обнаружением любого нового местоположения.

  2. Конечно, система будет учитывать, что вы перемещаетесь, когда ваше текущее местоположение отличается от вашего предыдущего местоположения (местоположение в кэше).

Вы можете попробовать с помощью следующего кода

Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);

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

затем

locationManager.requestLocationUpdates(provider,0, 0, new MyLocationListener());

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

Другие вопросы по тегам