update studio requestlocationupdates realtime google example current code android geolocation

studio - Android: utilizando requestSingleUpdate o reemplazarlo



realtime android geolocation tracking (2)

Puede usar el método getLastKnownLocation , pero puede estar desactualizado. requestLocationUpdates es asincrónico porque gps necesita "calentar" para encontrar una nueva ubicación. El método requestSingleUpdate está disponible desde el nivel 9 de la API, pero puedes implementar el uso de requestLocationUpdates y deshabilitar las actualizaciones después de la primera devolución de llamada a LocationListener.

Estoy trabajando en la aplicación, que debe obtener latitud y longitud. en mi caso requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) no está en la opción. ¿por qué? porque debo obtener la ubicación justo cuando el usuario hace algo que la ubicación es necesaria (digamos que él golpea el botón). y necesito la ubicación exactamente en el momento, cuando se golpea el botón. en requestLocationUpdates , podemos establecer minTime; si establezco esto, digamos que en 30000, la ubicación en el "tiempo de acierto del botón" no será tan buena como yo quiera. Por la misma razón, minDistance tampoco es tan buena como yo quiero. si entiendo la función requestLocationUpdates correcta, cuando minTime y minDistance están configurados en 0, la ubicación se actualiza todo el tiempo. Por favor corrígeme si estoy equivocado. la aplicación es para la empresa en la que estoy trabajando y esa aplicación se usará durante el día y la noche. entonces, si la aplicación verifica actualizaciones de ubicación todo el tiempo, la batería estaría a menudo vacía. Es por eso que necesito la ubicación justo en el momento, ese botón se golpea. encontré la función requestSingleUpdate . pero no puedo usarlo en eclipse = (como si no existiera)
¿Hay alguna otra forma de hacer esto o me falta algo?


El método requestSingleLocation es nuevo para el nivel API 9. Si se está orientando a un nivel de API anterior, este método no estará disponible para usted.

Uno de los problemas para obtener información de ubicación es que puede tomar tiempo obtener una solución. Esto es más un problema con el proveedor de ubicación GPS que el proveedor de red. Si solo está usando el proveedor de la red, puede que no haya mucho retraso en obtener la información de la ubicación cuando el usuario haga clic en el botón (digo esto sin saber nada sobre lo que hace su aplicación con los datos, o qué tipo de experiencia del usuario estamos tratando de proporcionar).

Otra cosa que puedes probar es PASSIVE_PROVIDER . Le permite obtener actualizaciones de ubicación que se solicitaron de otras aplicaciones. Sin embargo, esto significa que debe solicitar el permiso ACCESS_FINE_LOCATION . También es posible que deba dejar algo en ejecución para recibir las actualizaciones de ubicación (probablemente un servicio o un BroadCastReceiver ). El enfoque de BroadcastReceiver no debería usar esa duración adicional de la batería, ya que solo se ejecuta cuando el Intent se recibe junto con el PASSIVE_PROVIDER solo para obtener ubicaciones cuando alguna otra aplicación lo solicitó.

El otro punto pegajoso con el PASSIVE_PROVIDER es que eventualmente deberías llamar a removeUpdates . Dónde y cuándo llamar esto realmente depende de cómo está estructurada su aplicación y cómo maneja al usuario al salir de la aplicación.