Estoy creando una aplicación de Android con reconocimiento de ubicación. ¿Quiero saber la diferencia entre usar LocationManager y GoogleApiClient?

Creo que las respuestas a continuación son realmente buenas, especialmente Neel Raj. Solo agregaré una cosa. TL; DR: si su aplicación solo se preocupa por un solo punto, use FusedLocationManager, de lo contrario, si necesita un algoritmo sofisticado que tenga en cuenta una serie de puntos de ubicación, use LocationManager.

FusedLocationManager, que forma parte de Play Services y se utiliza con GoogleApiClient, es “mejor” y le brinda mucha potencia, especialmente en relación con el consumo de masa. Pero si está creando un rastreador de ejecución u otro algoritmo sofisticado, es mejor que use LocationManager por las siguientes razones:

1) FusedLocationManager no le permitirá filtrar ubicaciones por GPS / Wifi / Cell. Solo las ubicaciones de fuente GPS obtienen velocidad. Construí un algoritmo para detectar la conducción. No pude hacerlo funcionar con FusedLocationManager porque necesitaba velocidad.

2) Tangencial a # 1, las ubicaciones de GPS son más precisas que Wifi / Cell. Si usó FusedLocationManager para rastrear su carrera, vería que los puntos saltan por todo el lugar y la API le dice que fueron precisos. Eso es porque esos provienen de puntos de acceso Wifi y torres de celulares. PODRÍAS usar FusedLocationManager, pero necesitarías escribir un algoritmo de filtrado más sofisticado y no trivial para obtener tu curso actual.

3) No está realmente relacionado con lo anterior, pero FusedLocationManager solo funciona en teléfonos de Google Play Services. Si distribuye su aplicación a nivel mundial o a través de la tienda de aplicaciones de Amazon, necesitará LocationManager.

4) FusedLocationManager usa LocationManager debajo del capó. Siempre hay un costo con la abstracción. FusedLocationManager tiene un origen cerrado, por lo que si golpeas la pared con él, será difícil de depurar.

LocationManager se introdujo en Android SDK y se puede usar como una función de Android.

GoogleApiClient es algo que forma parte del SDK de Google Play Services.

Se puede entender que, dado que GoogleApiClient es el último, es más eficiente para obtener la ubicación con una energía mínima (consumo de batería) con mayor precisión.

Un par de cosas:

  1. Es más rápido y más confiable.
  2. Es menos con errores. Como ejemplo, en la antigua API a veces podíamos obtener una solución “antigua” con una nueva marca de tiempo. Esto ya nunca pasa. Hay más, pero sería una publicación aún más larga.
  3. Definitivamente drena menos batería. Por ejemplo, cuando tenía una vista de mapa abierta, el GPS funcionaba todo el tiempo y el ícono del GPS estaba visible. Este no es el caso con el nuevo. Esto hizo que los usuarios se preguntaran qué estaba pasando. Esto ya no es un problema tan grande.

Entonces, cuando se trata de la salida de la ubicación y el trabajo, todo es mejor. Pero hay algunos inconvenientes:

  1. Debe tener instalados los Servicios de Google Play, lo que significa que no funcionará en ningún modelo de teléfono “no aprobado por Google”, y en algunos casos tendrá que decirles a los usuarios que necesitan instalarlo.
  2. La API en sí misma es una OMI más compleja, en parte debido al punto 1. Además de las devoluciones de llamada “regulares”, es decir, esperando las correcciones de ubicación, etc. está disponible y “conecta” el GoogleApiClient. Este es un código adicional y un poco más complejo de entender. Más condiciones defectuosas para tener en cuenta en el código también (si puede molestarse …)
  3. Los propios servicios de Google Play requieren al menos 2.2, por lo que no funcionará para dispositivos más antiguos que eso.

¡Espero que esto ayude!

Use LocationManager si desea admitir dispositivos sin Play Services (muchas ROM personalizadas tienen este problema).

GoogleApiClient es parte de Play Services, por lo que recibe actualizaciones frecuentes. También incluye un FusedLocationProvider, que puede ayudarlo a obtener la última ubicación recuperada por cualquier aplicación en el dispositivo del usuario. Tampoco necesita administrar múltiples proveedores por separado (GPS, Wifi, etc.). No hace falta decir que este enfoque es más eficiente con la batería.

LocationManager no es tan preciso como GoogleAPI. Según mi conocimiento, Location Manager es parte del código abierto de Android, mientras que Google API no.

He creado algunas aplicaciones que reconocen la ubicación y tratar con LocationManager fue un dolor de cabeza. Además, los resultados no fueron satisfactorios, estaban muy lejos de la ubicación real de un usuario.

Después de cambiar a la API de Google, pude obtener resultados mucho mejores.

Sin embargo, la razón por la que existen dos bibliotecas diferentes para la ubicación, es que la API de Google no viene como parte de Android. Por lo tanto, aquellos fabricantes que solo usan Android de stock, por cualquier motivo, todavía tienen algo en lo que basar su ubicación geográfica, que es LocationManager.

More Interesting

Quiero continuar con el desarrollo de aplicaciones para teléfonos inteligentes (Android / Apple) ¿por dónde empiezo?

Recientemente publiqué una aplicación de Android y me está generando un ingreso de aproximadamente 4500-5000 $ por mes. ¿Cómo invierto este dinero?

Quiero aprender Java, C ++, C, Python, etc. y comenzar a programar de manera competitiva. ¿Cuál es la mejor manera de comenzar? Voy a la universidad este año y necesito ayuda para planificar en consecuencia.

He aprendido muy básicos de Android Studio. ¿Cómo debo proceder?

He instalado Android Studio, ¿cómo empiezo a desarrollar aplicaciones?

Quiero comprar un teléfono inteligente dual sim por debajo de 10000 /. El único requisito es que dure a largo plazo, ¿cuál es la mejor opción?

Estoy planeando migrar de Android a Windows. ¿Debo obtener el Lumia 930 ahora o esperar los teléfonos insignia de Windows 10?

Mi hijo de 13 años es adicto a Minecraft, que parece repetitivo y un mundo bastante sombrío y oscuro de mazmorras y rincones. ¿Hay algún juego para móviles Android que ayude al desarrollo del cerebro?

Quiero hacer un juego de Android. No tengo experiencia en tecnología. Soy un vendedor. ¿Cómo puedo hacer uno?

Usé mx player y Quickpic en mi celular. ¿Es posible ocultar algunos de mis videos y fotos?

Tengo un Moto G2 de 16GB. El problema es que debería tener 16 GB de espacio. Sé que el sistema operativo ocupa 2-3GB de espacio, pero he usado 5.2GB de los 12.8GB restantes y dice que he usado 8.9GB. ¿Dónde están los 3 GB restantes?

¿Por qué no puedo eliminar los datos de mi tarjeta SD después de la actualización de mi versión de Android? ¿Cómo puedo hacer lo mismo?

Quiero desarrollar aplicaciones de Android. ¿Cómo debo comenzar esto y qué libros debo leer?

Quiero una aplicación de Android desarrollada con servicios completos con cargos de suscripción mensual. ¿Quién es el proveedor del servicio?

¿Cuáles son los pasos a seguir para mantener los teléfonos Android funcionando como nuevos para siempre?