NETWORK_PROVIDER no proporciona ubicaciones actualizadas

LocationManager locationManager = (LocationManager)getApp().getSystemService(Context.LOCATION_SERVICE); //getApp() returns my Application object locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER , 1, 1, this); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1, 1, this); 

Ese es el código que estoy usando para escuchar. Con GPS habilitado, todo funciona bien. Sin embargo, si desactivo GPS y confío en la ubicación de la red, me da resultados obsoletos – en este caso, de hace dos días. No puedo conseguir que se actualice. Llamar getLastKnownLocation devuelve los mismos resultados obsoletos.

Google Maps se actualiza muy bien, así que sé que no es un problema de configuración de hardware / sistema.

He buscado por todo el mundo, y he encontrado algunas personas con problemas similares, pero sin respuestas. He intentado apuntar mi proyecto a API nivel 8 (2.2) así como 15 (4.0.3). Mismos resultados. Mi teléfono está ejecutando ICS.

También he intentado quitar la petición para GPS_PROVIDER, así como incluir las peticiones para todo en getAllProviders (). Mismo trato

¿Alguna idea de por qué NETWORK_PROVIDER no está actualizando? Cualquier ayuda sería muy apreciada.

(PS No, normalmente no uso "1, 1" como mis parámetros de tiempo / distancia, solo lo cambié al depurar esto.)

EDIT: He olvidado mencionar que sí, isProviderEnabled () devuelve true.

Finalmente encontré una manera de resolver este problema (ver mi pregunta aquí ).

En mi caso en S3 Galaxy Mini hubo síntomas similares (no hay actualizaciones de ubicación hasta el reinicio …) como los descritos anteriormente. En la mayoría de los casos, la ubicación dejó de actualizarse cuando el dispositivo llegó a condiciones de bajo consumo de energía, pero a veces se produjo incluso cuando el teléfono estaba completamente cargado. Obviamente este es un problema en algún lugar del LocationManager . He logrado omitir LocationManager utilizando la nueva API de Google Play Services para ubicaciones (clase LocationClient ).

Esta es probablemente la razón por la que las actualizaciones de ubicación todavía estaban funcionando con Google Maps, ya que Google Maps usaba Google Play Services API incluso antes de que se hiciera público.

Te recomiendo que sigas este enlace que muestra cómo usar la API de Play Services para obtener ubicaciones en lugar de usar LocationManager si te encuentras con este problema.

Im corriendo las actualizaciones de ubicación con Play Services y no había absolutamente ningún problema como este más – sigo recibiendo actualizaciones regulares de la ubicación en cualquier momento.

Tenga en cuenta que esto requerirá que el usuario tenga instalado Google Play en su dispositivo, por lo que Kindles y similares estarán fuera de la imagen. También requiere un mínimo de Android 2.2.

Actualmente sospecho que es causado por no usar removeUpdates(listener) en el apagado o la actividad de la aplicación. Me he asegurado de implementar eso y espero que lo corrija. No puedo pensar en otra cosa.

–edit– Esto no lo arregló por desgracia.

1) primero comprueba si tiene el permiso que se sugiere arriba. 2) usted debe estar seguro de que Internet está funcionando en su teléfono. 3) encuentre por favor el código abajo.

 public void getLocationByNetworkProvider() { LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 10, new LocationListener() { public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } public void onLocationChanged(Location location) { location.getLatitude(); location.getLongitude(); } }); }` 

Si está trabajando en un nuevo teléfono, debe comprobar si ha aceptado todos los acuerdos en la aplicación Google Maps, de lo contrario no recibirá ninguna actualización de NETWORK_PROVIDER.

Usted puede utilizar como esto para la ubicación de la actualización. Localizador de la localización trabajará para la localización ….

 import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.widget.TextView; import android.util.Log; public class MainActivity extends Activity implements LocationListener{ protected LocationManager locationManager; protected LocationListener locationListener; protected Context context; TextView txtLat; String lat; String provider; protected String latitude,longitude; protected boolean gps_enabled,network_enabled; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtLat = (TextView) findViewById(R.id.textview1); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); } @Override public void onLocationChanged(Location location) { txtLat = (TextView) findViewById(R.id.textview1); txtLat.setText("Latitude:" + location.getLatitude() + ", Longitude:" + location.getLongitude()); } @Override public void onProviderDisabled(String provider) { Log.d("Latitude","disable"); } @Override public void onProviderEnabled(String provider) { Log.d("Latitude","enable"); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { Log.d("Latitude","status"); } } 
  • GeoTagging Photo's después de usar Camera Intent
  • ¿Cómo puede obtener una ubicación en android cuando todos los proveedores de ubicación están inhabilitados?
  • El método getLastKnownLocation devuelve siempre null
  • Calibración GPS androide
  • Anular la suscripción de un LocationListener desde LocationManager
  • android LocationManager.requestLocationUpdates con minTime> 0 no funciona como se esperaba
  • Obtener el nombre de ubicación actual del usuario sin necesidad de utilizar gps o Internet, sino mediante Network_Provider en android
  • ¿Cuál es el significado de android.location.LocationManager.PASSIVE_PROVIDER?
  • ¿Existe una alternativa al Cliente de ubicación (API de Google Play)?
  • El acceso al GPS no funciona. La aplicación utiliza la red para obtener ubicación
  • IsProviderEnabled (LocationManager.NETWORK_PROVIDER) devuelve false
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.