Android, Solicitud de ubicación, establecer la duración de caducidad no funciona

Estoy usando nueva API de ubicación que se había introducido en I / O 2013.

Funciona bien y no tengo ningún problema con sus resultados. Mi problema es cuando fijo setExpirationDuration(WHATEVER_MILLIS) a cualquier millis sin embargo trabaja por un minuto.

Este es mi código:

 LocationRequest locationRequest = LocationRequest.create() .setInterval(10 * 60 * 1000) // every 10 minutes .setExpirationDuration(10 * 1000) // After 10 seconds .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

Cuando ejecuto la aplicación, el indicador de satélite se mostrará en la bandeja por lo que, espero verlo sólo 10 segundos. Sin embargo, desaparecerá después de un minuto.

Cualquier sugerencia o comentarios serán apreciados. Gracias.

Dado que parece ser un problema real en Android, una solución podría ser un controlador para eliminar actualizaciones de ubicación manualmente.

  listHandler = new Handler() { public void handleMessage(Message msg) { if (msg.what == 0) { mLocationClient.removeLocationUpdates(MyActivity.this); //Location Updates are now removed } super.handleMessage(msg); } }; 

Después de solicitar las actualizaciones de ubicación (para una duración máxima de 10s), se llama a este Handler, por supuesto retrasado por 10s.

 myLocationClient.requestLocationUpdates(...); listHandler.sendEmptyMessageDelayed(0, 10000); 

Esto asegura, que después de 10s sus actualizaciones de ubicación se eliminan.

En la documentación ( https://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html#setExpirationDuration(long) )

Dice que: "La duración comienza inmediatamente (y no cuando la solicitud se pasa al cliente de ubicación), así que llame a este método de nuevo si la solicitud se reutiliza en un momento posterior".

Se podría esperar que esta duración se inicie cuando se llama a la siguiente línea:

 LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, request, this); 

Sin embargo, la documentación indica que esta duración comienza cuando se crea el objeto de petición.

  • Mi móvil no se mueve, pero gps lat largo valores aún están cambiando
  • ¿Es Fused Location Provider buena opción?
  • ¿Por qué Location.distanceBetween arroja una excepción para el parámetro de resultado?
  • GetLastKnownLocation devolviendo NULL
  • Posicionamiento egnos en un dispositivo android
  • Cambiar el modo de ubicación a alta precisión mediante programación Android
  • Obtenga coordenadas GPS: Android
  • GpsSatellite.getSnr () - ¿Cuál es el rango de valor?
  • Android: el proceso ha muerto
  • Android Actualizaciones periódicas de la ubicación GPS con AlarmManager dentro de un servicio
  • ¿Cómo puedo detener al usuario durante mucho tiempo para obtener una corrección de ubicación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.