Укажите интервалы, чтобы Location Manager передавал текущее местоположение в Android - PullRequest
4 голосов
/ 02 апреля 2010

Есть ли способ указать интервалы времени, в течение которых диспетчер местоположений передает текущее местоположение?

Я использую метод, называемый startListening:

public void startListening() {
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 
                0, 
                0, 
                this
        );
}

Спасибо

Ответы [ 3 ]

5 голосов
/ 02 апреля 2010

public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)

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

Получение последнего местоположения может занять некоторое время. Если требуется непосредственное расположение, приложения могут использовать метод getLastKnownLocation (String).

Если поставщик отключен пользователем, обновления будут остановлены, и будет вызван метод onProviderDisabled(String). Как только поставщик будет снова включен, будет вызван метод onProviderEnabled (String), и обновления местоположения начнутся снова.

Частотой уведомления можно управлять с использованием параметров minTime и minDistance. Если minTime больше 0, LocationManager потенциально может отдыхать в течение minTime миллисекунд между обновлениями местоположения для экономии энергии. Если minDistance больше 0, местоположение будет транслироваться, только если устройство перемещается на minDistance метров. Чтобы получать уведомления как можно чаще, установите оба параметра на 0.

Фоновые службы должны быть осторожны при установке достаточно высокого значения minTime, чтобы устройство не потребляло слишком много энергии, постоянно поддерживая GPS или беспроводное радио. В частности, значения ниже 60000 мс не рекомендуются.

Поставляемый Looper используется для реализации механизма обратного вызова.

Параметры

  • провайдер название провайдера с помощью которого можно зарегистрироваться
  • минут минимальный интервал времени для уведомления в миллисекундах. это поле используется только как подсказка сохранить власть и реальное время между обновлениями местоположения может быть больше или меньше, чем это значение.
  • minDistance минимальное расстояние интервал для уведомлений, в метрах
  • слушатель, чей onLocationChanged (Location) метод будет вызываться для каждого обновление местоположения
  • петлитель Лупер объект, чья очередь сообщений будет используется для реализации обратного вызова механизм.

Выдает

IllegalArgumentException, если поставщик является нулевым или не существует
IllegalArgumentException если слушатель нулевой
IllegalArgumentException если петлитель равен нулю
SecurityException если подходящего разрешения для провайдера нет.

1 голос
/ 03 сентября 2010

minTime: минимальный интервал времени для уведомлений, в миллисекундах . Это поле используется только как подсказка для экономии энергии, и фактическое время между обновлениями местоположения может быть больше или меньше этого значения.

minDistance: минимальный интервал расстояния для уведомлений, в метрах

0 голосов
/ 06 мая 2010
    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 9000, 500,locListener);

// 60000 - 1 минута, а 100 - КМ

Выше у вас есть 9000 (Девять секунд) и 500, что, если местоположение переместилось более чем на 500 км.

...