2011-05-10 9 views
8

getBestKnownLocation Devuelve una ubicación que indica los datos de la última corrección de ubicación conocida obtenida del proveedor proporcionado. Esto se puede hacer sin iniciar el proveedor. Tenga en cuenta que esta ubicación podría estar desactualizada, por ejemplo, si el dispositivo se apagó y se movió a otra ubicación.getLastKnownLocation() Android, cuando se actualiza la última ubicación conocida?

cuando se actualizó la última ubicación conocida en Android? ¿está actualizado si hay una aplicación que está escuchando al proveedor de ubicación? En caso afirmativo, ¿qué sucede si no hay una aplicación que solicite la ubicación y luego solicitó la última ubicación de la cuenta()?

+0

¿Qué estás tratando de lograr? por favor, formatee la pregunta – Hades

+0

Quiero ver si el getLastKnownLocation es confiable (cuando se actualiza?) para obtener la ubicación del usuario. – Jimmy

Respuesta

5

Creo que LastKnownLocation() se está actualizando cuando algunos programas en su teléfono usan esta función requestLocationUpdates.

+0

Según mis observaciones, creo que tienes razón. Noté que cuando mi aplicación hace llamadas de red, y comprobé por última vez, se actualizó hace unos segundos. –

5

Por favor, vea Start location strategy

hice algunas investigaciones: Encendí GPS y esperaba para obtener una solución. Luego apagué el GPS y manejé 50 km (31 millas). Luego utilicé el código de A Deep Dive Into Location para obtener todos los getLastKnownLocation. Lo probé dos veces, primero con el GPS apagado y el segundo con el GPS encendido, pero sin un arreglo:

1) con el GPS apagado llegué - Proveedor: la red, la ubicación correcta con exactitud 680m - Proveedor: pasiva (mProvider = red), mismo lugar que el anterior, mismo tiempo que el anterior - proveedor: GPS, la ubicación nula

Así aprendí que cuando el GPS está desactivado no se obtiene ningún getLastKnownLocation del proveedor de ubicación GPS.

2) con el GPS encendido llegué - Proveedor: la red, la ubicación correcta con exactitud 652m - Proveedor: pasivo (mProvider = red), el mismo lugar que el anterior, mismo tiempo que el anterior - Proveedor: GPS, la ubicación como fue 2 horas antes con una precisión de 12m, el tiempo también fue 2 horas antes

Aquí aprendí que los mensajes antiguos no se invalidan, incluso es obvio que están equivocados.

Para resumir: cuando un proveedor está activo, almacena la última ubicación recibida recuperable mediante getLastKnownLocation. Si el proveedor está desactivado, ni siquiera obtiene getLastKnownLocation. Tenga en cuenta que probé esto con el proveedor de GPS, otros proveedores pueden reaccionar de una manera diferente.

Cuestiones relacionadas