¿Cuál es la forma más sencilla y sólida de obtener la ubicación actual del usuario en Android?

El LocationManager Parece que la API en Android es un poco difícil de usar para una aplicación que solo necesita una aproximación ocasional y aproximada de la ubicación del usuario.

La aplicación en la que estoy trabajando no es realmente una aplicación de ubicación per se, pero necesita obtener la ubicación del usuario para mostrar una lista de negocios cercanos. No necesita preocuparse por si el usuario se está moviendo o algo por el estilo.

Esto es lo que me gustaría hacer:

  1. Muestre al usuario una lista de ubicaciones cercanas.
  2. Precargue la ubicación del usuario para que cuando la necesite en Activity X, estará disponible.
  3. No me importa particularmente la precisión o la frecuencia de actualización. Solo tomar una ubicación es suficiente siempre que no esté muy lejos. Tal vez, si quiero ser elegante, actualice la ubicación una vez cada pocos minutos, pero no es una gran prioridad.
  4. Funciona para cualquier dispositivo siempre que tenga un GPS o un proveedor de ubicación de red.

Parece que no debería ser tan difícil, pero me parece que tengo que poner en marcha dos proveedores de ubicación diferentes (GPS y RED) y administrar el ciclo de vida de cada uno. No solo eso, sino que tengo que duplicar el mismo código en múltiples actividades para satisfacer el n. ° 2. He intentado usar getBestProvider() en el pasado para reducir la solución a usar un solo proveedor de ubicación, pero eso parece solo brindarle el mejor proveedor "teórico" en lugar del proveedor que realmente le dará los mejores resultados.

¿Existe una forma más sencilla de lograr esto?

preguntado el 29 de junio de 10 a las 18:06

Podría usar una biblioteca simple que abstraiga todas las cosas que deben suceder "bajo el capó": github.com/delight-im/Android-SimpleLocation -

En 2018 es FusedLocationProviderClient Example para actualizaciones de ubicación en segundo plano freakyjolly.com/… -

obtenga la respuesta en Kotlin aquí: stackoverflow.com/a/53800632/2201814 -

Puedes usar técnicas de captura de ubicación fusionadas en Android. -

FusedLocation funciona bien (todavía no sé por qué getCurrentLocation () tuvo que ser obsoleto). -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.