2010-11-24 18 views
7

He creado un servicio y capturo datos de ubicación sobre el usuario para poder mostrarles a mis usuarios lugares cercanos. Deseo que este Servicio rastree por red además del GPS por dos razones: 1) Es posible que el GPS no esté habilitado. 2) El GPS toma bastante tiempo para sincronizar con mi teléfono de prueba.Problema que solicita actualizaciones de ubicación por red

Cuando mi servicio ejecuta la siguiente línea:

mNETEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

me sale el siguiente error:

11-24 14:00:41.693: ERROR/LocationManagerService(51): isProviderEnabled got exception: 
11-24 14:00:41.693: ERROR/LocationManagerService(51): java.lang.IllegalArgumentException: provider=network 
11-24 14:00:41.693: ERROR/LocationManagerService(51):  at com.android.server.LocationManagerService._isProviderEnabledLocked(LocationManagerService.java:1385) 
11-24 14:00:41.693: ERROR/LocationManagerService(51):  at com.android.server.LocationManagerService.isProviderEnabled(LocationManagerService.java:1359) 

¿Por qué es esto? ¿Me estoy perdiendo un permiso del Manifiesto? Tengo ACCESS_COARSE_LOCATION en mi manifiesto.

Respuesta

2

Use wireless networks configuración en Security & location ajustes de preferencia. Está habilitado?

+0

Esto también sucede en el teléfono; que no está conectado a un enrutador inalámbrico. Pero sí, está marcado. – Andrew

+0

¿Está revisando si el proveedor está habilitado? – techiServices

+0

Oh, vaya, he cometido un error. El error ocurre en la llamada isProviderEnabled. Actualizaré la publicación principal para reflejar esto. – Andrew

0

Podría ser que el Momento no tenga AGPS (lo que sería extraño). Pero puede verificar usando LocationManager.getAllProviders() y ver cuáles regresan. También puede usar LocationManager.getBestProvider (Criteria criteria, boolean enabledOnly)'.

+0

Mi código solía funcionar en mis momentos; así que tengo que asumir que hay un nuevo error en mi código o un nuevo error en el SDK. No tengo mis teléfonos en este momento, pero al llamar a getAllProviders() en el emulador devuelve una lista que solo contiene "gps". Si esto es normal o no, no lo sé. – Andrew

+0

He probado en un emulador con 2.0 y no me sale el error (estaba probando previamente en 2.1) – Andrew

14

¿Estás ejecutando emulador en el nivel api 13 o superior? Android issue 19857

+1

Tengo este problema en el emulador de ICS. ¿Hay algún trabajo alrededor? –

+2

Para solucionar este problema, regístrese para recibir actualizaciones como esta: for (Proveedor de cadenas: locationManager.getAllProviders()) {locationManager.requestLocationUpdates (provider, 0, 0, this); } –

Cuestiones relacionadas