ubicacion seleccionar prueba google falsa desactivar correcta como chrome cambiar aplicaciones aplicacion aparece android gps fusedlocationproviderapi

android - seleccionar - El GPS de ubicación fusionada no se actualiza hasta que se abre Google Maps



ubicacion falsa android (2)

Gps no siempre devuelve una ubicación, incluso está disponible a través de FusedLocationProvider api o LocationManager LocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) . Especialmente, si está en el interior, es menos probable que obtenga ubicación desde Gps, dependiendo del chip Gps de su dispositivo. Los Gps se deben arreglar para devolver una ubicación.

Puede escribir una aplicación de prueba que tenga LocationManager con Gps, Wifi y GpsStatusListener para verificar el conteo de satélites, los satélites en el arreglo y la intensidad de la señal del satélite y compararlo con FusedLocationProvider al mismo tiempo y agregar las ubicaciones provistas al mapa como marcadores. También puede buscar Location.getExtras () para FLP que puede contener información sobre satélites. Incluso si LocationManager Gps está disponible y el conteo satelital es 2, no puedo obtener una ubicación desde Gps.

Hello World en la imagen debe ser la ubicación de Gps, pero no se devuelve, ya que aún no se ha solucionado. Es posible que las pruebas no resuelvan su problema, pero puede comparar las situaciones en las que se obtiene la ubicación o no se puede, por ejemplo, puede ser necesario utilizar 3 satélites para obtener la ubicación de Gps o la intensidad mínima de la señal. También puede tomar demasiado tiempo para que Gps se bloquee y el estado en GpsStatusListener se establece en GpsStatus.GPS_EVENT_FIRST_FIX cuando está bloqueado. Me llevó aproximadamente 5 minutos reparar los Gps y devolver una ubicación. También escribí otra prueba con mapas y tuve el mismo problema hasta que Gps se corrigió tanto en LocationManager como en FLP.

Estoy usando un proveedor de ubicación fusionada en mi aplicación, que está configurado en PRIORITY_HIGH_ACCURACY en un intervalo de 60 segundos. Por lo general, esto funciona, pero a veces la ubicación no se actualiza de 5 a 10 minutos por sí sola, y cuando abro Google Maps, parece desencadenar una actualización de ubicación.

¿Alguien más aquí que podría haberse encontrado con este problema o conocer las posibles causas de este comportamiento? ¿Hay alguna forma de arreglar esto?


Según mis hallazgos del siguiente enlace, el Proveedor de ubicación fusionada solo mantendrá la ubicación de fondo si al menos un cliente está conectado a ella. Una vez que el primer cliente se conecta, inmediatamente intentará obtener una ubicación. Si su actividad es el primer cliente que se conecta y llama a getLastLocation() inmediato en onConnected() , puede que no sea suficiente tiempo para que onConnected() la primera ubicación. Esto dará como resultado que la ubicación sea null .

Para resolver este problema, debe esperar (indeterminadamente) hasta que el proveedor obtenga la ubicación y luego llamar a getLastLocation() , que es imposible de conocer.

Otra (mejor) opción es implementar la interfaz com.google.android.gms.location.LocationListener para recibir actualizaciones de ubicación periódicas (y desactivarla una vez que obtenga la primera actualización).