Intervalo requestLocationUpdates en Android

Trato de obtener la velocidad correcta en las actualizaciones de la función onLocationChanged, esta es mi clase:

public class LocationService extends Service implements LocationListener { 

Poner el minTime en 6000 no ayuda, se mantendrá actualizando constantemente, ¿qué estoy haciendo mal?

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

Saludos

El minTime es sólo una sugerencia para el LocationProvider, y no significa que su oyente de localización se llamará una vez cada 6 segundos. Recibirá más actualizaciones de ubicación y su código hasta seleccionar el más preciso.

Supervise el icono de GPS en su teléfono. Una llamada a requestLocationUpdates activará el GPS para localizar su ubicación y enviará una o más actualizaciones de ubicación al lector de ubicaciones si es capaz de obtener una corrección. (En este punto, su icono de GPS debe ser animado, ya que busca una ubicación).

Durante ese tiempo, su localizador de ubicación puede recibir varias actualizaciones de ubicación. Su código puede ir y elegir la ubicación más precisa, y el proceso sólo que uno.

Después de que el GPS haya enviado la (s) actualización (es) de ubicación a su oyente, debe haber un período de inactividad. (Su icono de GPS debería desaparecer durante un par de segundos). Este período de inactividad debe corresponder con su minTime. El estado del GPS también cambiará, ya que se pondrá en TEMPORARILY_UNAVAILABLE.

Después de eso, se repite el mismo proceso. (El GPS se convierte en DISPONIBLE, y volverá a recibir una o más actualizaciones de ubicación).

También tenga en cuenta, si el GPS no puede obtener una corrección de ubicación, el icono de GPS permanecerá activo durante más de 6 segundos, pero no recibirá actualizaciones de ubicación.

También puede supervisar el estado de su proveedor de GPS a través de su oyente, a través del siguiente método:

 public void onStatusChanged(String provider, int status, Bundle extras) {} 

El estado es una de las siguientes constantes definidas en android.location.LocationProvider

 public static final int OUT_OF_SERVICE = 0; public static final int TEMPORARILY_UNAVAILABLE = 1; public static final int AVAILABLE = 2; 

Eche un vistazo a Understanding the LocationListener en Android para un ejemplo sobre el comportamiento de minTime, y un escenario (incluyendo algunos registros) para ayudarle a entender lo que está pasando.

Tenga en cuenta que ajustar los parámetros minTime y minDistance en el LocationManager y actuar sobre las actualizaciones de estado del GPS le permitirá afinar el desarrollo de la ubicación del usuario.

6000 en milisegundos equivale a 6 segundos, y puede parecer que continiously actualización. De Android dev guía "minTime bajo 60000ms no se recomienda" Tal vez vale la pena aumentarlo a 60000ms

  • Cambio de idioma dentro de la aplicación Android
  • Android: Obtener ubicación reciente solamente, no getLastKnownLocation?
  • Actualizaciones de ubicación que no funcionan en interiores como lo reclaman las API del proveedor de ubicaciones de Fusion
  • conexión a internet en pausa después de bloqueo de teléfono android
  • ¿Cuáles son las mejores prácticas para la arquitectura de la aplicación Android basada en la ubicación?
  • Permisos de aplicaciones en Android Marshmallow en PhoneGap
  • Cómo publicar datos utilizando el método POST en Android
  • ¿Cómo algunas aplicaciones (wechat) ignoran la ubicación falsa y luego detectan la verdadera?
  • RequestLocationUpdates no se actualiza en intervalos en Android
  • Obtener la distancia más corta desde un punto
  • Recibir una notificación (vía BroadcastReceiver) cuando se inicia / detiene el GPS (o servicios de ubicación)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.