¿Por qué locationmanager devuelve viejas correcciones de ubicación con new gettime-timestamp?
Tenemos una aplicación que cuando se intenta obtener una corrección de ubicación. Se escucha tanto en GPS y la red y tiene una matriz de decisión basada en el tiempo / precisión para determinar cuándo dejar de escuchar y qué arreglo para volver.
Hemos notado, en ocasiones, un comportamiento muy extraño. Utilizamos la forma clásica de ver qué edad tiene la solución, así:
- Android LocationManager.isProviderEnabled () siempre devuelve false
- OnLocationChanged no se llama automáticamente
- Ubicación de Android getBearing () devuelve siempre 0
- LocationManager.requestLocationUpdates agregar o actualizar?
- Permisos del administrador de ubicaciones de Android que se utilizarán
long age = now - newLocation.getTime(); if(age >= prefs.getLocationMaxAge()){ Log.d(TAG, "location too old."); return; }
Pero a veces, el location.getTime devuelto desde el sistema operativo tiene una edad de quizás 15-20 segundos, de acuerdo con la marca de tiempo devuelta, aunque podemos decir con certeza que es muy antiguo. Por ejemplo, si la corrección de longitud / latitud es de una posición que el teléfono estaba en 30 minutos atrás!
Parece que sucede tanto de Wi-Fi y la red, pero no GPS. Para mí, esto es totalmente loco. ¿Alguien más ha visto esto y hay alguna forma de evitarlo?
Lo hemos conseguido en un par de teléfonos diferentes, el más reciente es Samsung Galaxy S II .
La ayuda sería extremadamente agradable.
EDIT : Para ser realmente claro, el problema es que el "onlocationchanged" devolución de llamada es llamado por el sistema operativo con una ubicación con un timestamp edad de quizás un par de segundos, cuando sé con certeza que la longitud / latitud en el "nuevo" Es un lugar donde el teléfono no ha estado en por al menos 30 minutos.
Esto hace que sea difícil determinar con precisión dónde está el teléfono …
- LocationManager requestLocationUpdates no funciona
- GeoTagging Photo's después de usar Camera Intent
- Permiso de comprobación de Android para LocationManager
- ¿Por qué no se llama al método onProviderEnabled () de Android?
- ¿Cómo puede obtener una ubicación en android cuando todos los proveedores de ubicación están inhabilitados?
- Android GPS Localización Velocidad no fiable
- OnLocationChanged siempre devuelve la antigua ubicación
- ¿Existe una alternativa al Cliente de ubicación (API de Google Play)?
Parece que sucede tanto desde Wi-Fi y la red, pero no GPS
Esto parece justo, porque en el Wi-Fi y la red de células basadas en la triangulación, la precisión es muy mala. Es probable que utilicen ubicaciones en caché que datan de hace 30 minutos. A menos que usted no haya cambiado su sitio de la célula o se haya movido a otro edificio de modo que los nuevos APs se puedan descubrir, me temo que usted conseguirá solamente localizaciones en caché. Si desea ubicaciones nuevas, utilice el proveedor de GPS.
- ¿Está disponible la red en Android?
- Error de lectura: error en la biblioteca SSL, generalmente un error de protocolo