¿Por qué Android tiene problemas para recordar la última ubicación conocida?

12

Nunca he podido averiguar la forma en que Android recuerda su última ubicación conocida. Si parece recordar la ubicación de hace varias horas pero no hace varios segundos. Creo que es mejor dar un ejemplo de lo que quiero decir.

Hace poco estuve en el área de la bahía. Estaba usando los mapas de Google en mi Android y estaba cerca del Campus de Google en Mountain View. Estaba usando mapas con GPS habilitado y después de un tiempo obtuve un bloqueo de GPS adecuado que usé para navegar por el área.

Cuando volví a San Francisco más tarde, lo estaba usando para recorrer la ciudad. Cada vez que encendía los mapas, mi ubicación volvía a estar en Mountain View. Aproximadamente 10 segundos después de que se cerró el GPS, obtuve mi ubicación real. Si apagué y volví a encender el teléfono unos segundos después, sucedió lo mismo: cree que estoy en un lugar donde estaba horas antes y luego entra en acción con mi ubicación real. Esto sucede todo el tiempo, recordando dónde estaba hace horas, no dónde estaba hace unos momentos. Una vez que he estado en un área durante un cierto tiempo, ahora se convierte en la nueva "última ubicación conocida".

¿Por qué, una vez que obtengo un bloqueo GPS preciso, Android no lo registra como la "última ubicación conocida" en lugar de una anterior?

Tim
fuente

Respuestas:

3

No es una respuesta completa, pero hay información de fondo:

  • Su dispositivo puede tener más de 1 proveedor de ubicación, por ejemplo, uno basado en GPS y otro basado en las torres de teléfonos móviles que puede ver.
  • Android no tiene una última posición conocida. Cada proveedor de ubicación tiene su propia última posición conocida.
  • Una ubicación tiene métricas adicionales, como precisión, cuándo se registró, qué se registró (por ejemplo, si tiene un componente de altitud, etc.)

Por lo tanto, depende del proveedor de ubicación que use la aplicación y eso puede depender o incluso cambiar según los parámetros dinámicos. Por ejemplo, en el inicio, podría pedirle a Android el proveedor de ubicación más rápido para comenzar y luego cambiar al más preciso para obtener gradualmente una mejor solución.

usuario4188
fuente
Esta es una explicación muy buena y concisa. Gracias.
Nick Dixon
Esto también tiene sentido ya que cuando estaba de regreso en la ciudad no tenía wifi / datos móviles. En el campus de Google había wifi. Por lo tanto, los mapas deben haber estado usando inicialmente la ubicación "desconocida" (es decir, wifi) (que estaba en Google) y luego, cuando el GPS se activó unos segundos más tarde, se actualiza. Todavía hubiera pensado que la ubicación de GPS conocida habría sido una lectura más fresca / mejor.
Tim
Esta respuesta es más como un comentario. y si la ubicación aproximada tiene menos prioridad, explicaría aún menos por qué el teléfono volvió a ver más tarde.
gcb
2

Tengo entendido que Android usa actualizaciones de ubicación de tipo grueso y fino y estas actualizaciones también pueden tener diferentes métricas de calidad. Podría ser que la aplicación Google Maps no tuviera señal de GPS y Wifi el tiempo suficiente en su nueva ubicación para ser de una calidad lo suficientemente alta como para ser la última ubicación conocida.

Los documentos del desarrollador en http://developer.android.com/guide/topics/location/obtaining-user-location.html dan algunos modelos de ejemplo para obtener ubicaciones de usuarios que podrían dar una idea de cómo funciona. Pero supongo que Google Maps, y probablemente otros mapas, hacen lo suyo.

Andy Shinn
fuente