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

  • Cómo obtener el nombre de satélite o el número cuando estamos recibiendo la ubicación a través de GPS en Android?
  • LocationClient getLastLocation () devolver null
  • ACCESS_FINE_LOCATION Permisos de AndroidManifest no concedidos
  • Cómo encontrar el código postal por latitud y logitud para el Reino Unido
  • Obtención de velocidad mediante el API de ubicación de Google Play
  • Habilitar servicios de ubicación para Android si el usuario eligió la opción Nunca
  • Pasar cadenas entre actividades en android
  • Obtener la distancia más corta desde un punto
  • Dar localización falsa al emulador de Genymotion
  • GetTriggeringGeofences y getGeofenceTransition de LocationServices
  • Android Encuentra la latitud Longitud del punto X de la ubicación definida
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.