2012-04-06 11 views
5

En androide 4,0 & por encima de una llamada aNETWORK_PROVIDER no trabajado en versiones androide 4.0 y anteriores/nivel API 14 y por encima de

LocationManager.requestLocationUpdates (LocationManager.NETWORK_PROVIDER, 0, 0, oyente)

está dando excepción como

Causado por: java.lang.IllegalArgumentException: provider = network.

Incluso si la red está habilitada, se produce la misma excepción.

Sé que se trata de un problema informado (http://code.google.com/p/android/issues/detail?id=19857).

Mi pregunta es.

Cómo obtener la ubicación por proveedor de red o por cualquier otro método (no GPS) en android 4.0 & anterior?

Respuesta

0

No utilice cadenas directas del proveedor, ya que no se garantiza que exista en tiempo de ejecución.

Utilice sólo los proveedores que se obtienen de la LocationManager, así:

LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 

    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_COARSE); 
    String provider = locationManager.getBestProvider(criteria, true); 

    if (provider == null) { 
     Log.e(TAG, "No location provider found!"); 
     return; 
    } 

    lastLocation = locationManager.getLastKnownLocation(provider); 
1

No es una cuestión abierta del marco de Android 4.0, por lo que el proveedor de red no funciona, pero la última versión de Android se habían resuelto y trabajo éxito , Por favor, compruebe su código en el último marco de Android.

+0

Puede proporcionar el enlace de este problema, por favor? – ihrupin

0

Sí, esta compatibilidad está disponible con la versión más reciente se puede comprobar ..

Cuestiones relacionadas