Más de un proveedor de ubicación al mismo tiempo

Tengo algunos problemas con los sistemas de localización. Tengo un servicio que implementa locationlistener. Quiero conseguir la mejor ubicación usando la red cuando sea posible, gps si la red no es lo suficientemente precisa (precisión superior a 300mt). El problema es esto. Necesito localización (exacta si es posible, inaccuarte otrosways) cada 5 minutos. Comienzo con un:

LocationManager lm=(LocationManager)getApplicationContext().getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); String provider=lm.getBestProvider(criteria, true); if(provider!=null){ lm.requestLocationUpdates( provider,5*60*1000,0,this); 

En "onLocationChanged" escucho localizaciones y cuando consigo una localización con la exactitud mayor que 300mt, quiero cambiar al sistema de la localización de los gps.

Si elimino todas las actualizaciones y luego solicito actualizaciones de gps, como esto:

 lm.removeUpdates((android.location.LocationListener) this); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); String provider=lm.getBestProvider(criteria, true); if(provider!=null){ lm.requestLocationUpdates( provider,5*60*1000,0,this); } 

El sistema deja de esperar para gpsupdate, y si estoy en una habitación cercana puede permanecer sin actualizaciones de la ubicación durante horas, ignorando las indicaciones timeupdate. ¿Hay una manera de decir locationprovider para cambiar a la red si gps no está dando una ubicación en "x" segundos? O cómo entender cuando gps no está localizando?

O si requestlocationupdates de 2 proveedores al mismo tiempo (red y gps), puede ser un problema?

¿Cualquier sugerencia?

Estaba escribiendo una respuesta específica a tu pregunta, pero luego me di cuenta de que no había manera de que mi anser pudiera competir con este excelente recurso que la guía dev de Android proporciona. Explica los cómo, los porqués, los pros y los contras de los oyentes de la localización.

Si vas por la carretera GPS en Android, es una lectura obligada. Responde a su pregunta anterior y muchos más. Confía en mí, vale la pena tu tiempo.

También hay los ejemplos proporcionados con cada SDK que implementan ejemplos útiles. Estoy bastante seguro de que era un ejemplo de ubicación.

  • Cómo obtener Ciudad y País de un usuario en android sin GPS?
  • Donde el archivo .apk se coloca en el teléfono después de la instalación
  • Geofences no funciona cuando se mata la aplicación
  • Obtener ubicación * gruesa * del proveedor de GPS en Android
  • Android O - Old empezar el servicio de primer plano sigue funcionando?
  • LocationManager devuelve la antigua ubicación en caché "Wifi" con la marca de hora actual
  • La actualización de la ubicación del fondo Android no aparece cuando la pantalla está desactivada
  • Android Advertencia: JAR no existe o no contiene recursos
  • Android Encuentra la latitud Longitud del punto X de la ubicación definida
  • Bug in Android Geofence Código de ejemplo? ¿Puede alguien confirmar?
  • ¿Existe un servicio o una aplicación de Android que sea similar al servicio de ubicación de cambios significativos de IOS?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.