LocationClient vs LocationManager
¿Cuál es la diferencia entre LocationClient
y LocationManager
.
¿Cuáles son los pros y los contras entre ellos (como la batería, la precisión)?
- Cómo enviar datos al servidor en android
- Error al agregar geofences en Android (código de estado 1000)
- Cómo puedo conseguir la localización geográfica actual del dispositivo programatically
- ¿Podemos localizar a un usuario a través del número de teléfono del usuario en Android?
- Guardar ubicación de red como un archivo .txt (sin utilizar GPS)
¿Cuál es mejor usar?
- ¿Existe una alternativa al Cliente de ubicación (API de Google Play)?
- Intentar invocar el método virtual. Aplicación para mostrar la ubicación
- ¿Hacer algo cuando el teléfono llega a un conjunto de ubicación?
- Java io ioexception no puede analizar la respuesta del geocoder de servidor
- ¿Cómo realizar un seguimiento continuo de la ubicación de un teléfono móvil Android?
- ¿Qué tan confiable es LocationLastKnownLocation de LocationManager y con qué frecuencia se actualiza?
- LocationListener funciona en el emulador, no en el teléfono
- ¿Qué dispositivos admiten Android Batching de sensores?
Location Manager
se introdujo en Android SDK y se puede utilizar como una característica de android.
Location Client
es parte del SDK de Google Play y se presenta en el reciente Google IO 2013.
Uno puede entender que puesto que el cliente de la localización es el más último, es más eficiente en conseguir la localización con la energía mínima (drenaje de la batería) con una mayor exactitud.
UPDATE: LocationClient está obsoleto. Tienes que usar GoogleApiClient . Un ejemplo de ello se puede encontrar aquí .
El equipo de servicios de Google Play ha limpiado su código y ha movido la funcionalidad LocationClient a GoogleApiClient.
Tutorial para el mismo está disponible en http://developer.android.com/training/location/retrieve-current.html
En el siguiente enlace puede encontrar IO hablar sobre este tema http://www.youtube.com/watch?v=Bte_GHuxUGc
He estado desarrollando una aplicación basada en la ubicación en android y en serio no recomiendo usar el CLIENTE LOCATION en cualquier caso. Razones :
-
El comportamiento de actualización de la ubicación es muy anormal y no funcionará como esperas. Es decir, las actualizaciones de ubicación quedan atascadas al cambiar de redes. (Sigue dándole alguna ubicación antigua)
-
El cliente de ubicación no funcionará en las versiones Android modificadas del sistema operativo Android, ya que requiere servicios de Google Play.
Con mi experiencia, el Cliente de ubicación podría ser bueno en la batería del teléfono, pero no será bueno con darle actualizaciones oportunas y precisas de la ubicación.
Recomiendo buen viejo gerente de ubicación ya que no encontrar el cliente de ubicación confiable en todo.
PS: No hay punto de ahorrar batería si ni siquiera está recibiendo su ubicación actual en una aplicación basada en ubicación.
EDIT: si conoce la implementación de LocationManager y LocationClient (ambos están disponibles en la documentación), puede crear su propio contenedor de tipo LocationClient (con callbacks y otras cosas), que funcionará en LocationManager pero con propiedades personalizables ajustables.
EDIT 2:
Por favor, encuentre la clase de Wrapper de LocationManager aquí, que proporciona actualizaciones de ubicación oportunas:
He trabajado en una aplicación de seguimiento y mi experiencia es que LocationManager es mejor que LocationClient. LocationClient no proporciona ninguna forma de especificar que desea que las actualizaciones de localización sólo se realicen desde el GPS. Todo lo que permite es especificar "alta precisión". Esto funciona para la mayor parte, pero de vez en cuando se obtiene una actualización de la ubicación que está a cientos de metros de distancia pero con una precisión especificada de unos pocos metros. No hay manera de saber que tienes una muestra inutilizable. Con LocationManager si especifica GPS_PROVIDER, puede estar seguro de que nunca va a obtener muestras excesivamente imprecisas. Trabajando bien para nosotros.
Viene de alguien que cambió a Google Play Services hace un tiempo, puedo darte algunas experiencias:
Tengo una aplicación, alrededor de 2,5 años de edad, que utiliza servicios de localización extensivamente. Desde el principio, por supuesto, hemos utilizado el LocationManager ya que eso es lo que estaba disponible en la plataforma Android.
Tuvimos una muy mala experiencia con Servicios de ubicación en Android en comparación con IOS. Era buggy, no fiable, y dio localizaciones menos precisas que nuestra aplicación IOS, además de que drenó más batería. Fue un arrastre.
Por lo tanto, cuando Google dio a conocer la nueva API en junio este verano, saltamos a ella. Es mucho mejor. Un par de cosas:
-
Es más rápido y más confiable.
-
Es menos buggy. Como ejemplo, en la API antigua a veces podíamos obtener una corrección "antigua" con una nueva marca de tiempo. Esto nunca sucede más. Hay más, pero sería un post aún más largo.
-
Sin duda, drena menos batería. Por ejemplo, cuando tenías una vista de mapa abierta, el GPS funcionaba todo el tiempo y el icono de GPS era visible. Este no es el caso con el nuevo. Esto hizo que los usuarios se preguntaran qué estaba pasando. Esto no es tan grande como un problema.
Por lo tanto, cuando se trata de la salida de la ubicación y el trabajo, todo es mejor. Pero hay algunas desventajas:
-
Debe tener instalados Google Play Services, lo que significa que no funcionará en modelos de teléfonos "no aprobados por google" y, en algunos casos, tendrá que indicar a los usuarios que deben instalarlo.
-
La propia API es más compleja IMO, en parte debido al punto 1. Además de las devoluciones "regulares", es decir, esperando ajustes de ubicación, etc. Ahora tiene un proceso que toma parte antes de que pueda empezar donde debe comprobar que playservices Está disponible, y "conectar" al cliente de ubicación. Este es un código extra y un poco más complejo de entender. Más condiciones defectuosas a tener en cuenta en el código también (si puede ser molestado …)
-
Los servicios de Google Play en sí requieren al menos 2,2, por lo que no funcionará para los dispositivos más antiguos que eso. Tuvimos que decirle a algunos clientes que tenían que actualizar …
Espero que esto ayude.
- ¿Puede detectar el ruido blanco mediante programación?
- Cómo utilizar onSaveInstanceState () y onRestoreInstanceState ()?