2010-11-24 2 views
7

J'ai créé un service et saisit des données de localisation sur l'utilisateur afin que je puisse montrer à mes utilisateurs les lieux proches. Je veux que ce service effectue un suivi par réseau en plus du GPS pour deux raisons: 1) Le GPS peut ne pas être activé. 2) GPS prend un peu de temps pour verrouiller avec mon téléphone de test.Problème lors de la demande de mises à jour d'emplacement par réseau

Quand mon service exécute la ligne suivante:

mNETEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

Je reçois l'erreur suivante:

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) 

Pourquoi est-ce? Ai-je manqué une autorisation du manifeste? J'ai ACCESS_COARSE_LOCATION dans mon manifeste.

Répondre

2

Use wireless networks de définir les paramètres de préférence Security & location. Est-ce activé?

+0

Cela se produit aussi sur le téléphone; qui n'est pas connecté à un routeur sans fil. Mais oui, c'est vérifié. – Andrew

+0

Vérifiez-vous si le fournisseur estProviderEnabled? – techiServices

+0

Oh, oups, j'ai fait une erreur. L'erreur se produit lors de l'appel isProviderEnabled. Je mettrai à jour le post principal pour refléter ceci. – Andrew

0

Peut-être que le moment n'a pas AGPS (ce qui serait bizarre). Mais vous pouvez vérifier en utilisant LocationManager.getAllProviders() et voir ceux qui reviennent. Vous pouvez également utiliser LocationManager.getBestProvider (Criteria criteria, boolean enabledOnly)'.

+0

Mon code utilisé pour travailler sur mes moments; Je dois donc supposer qu'il y a un nouveau bug dans mon code ou un nouveau bug dans le SDK. Je n'ai pas mes téléphones sur moi pour le moment, mais appeler getAllProviders() sur l'émulateur renvoie une liste contenant uniquement "gps". Que ce soit normal ou non, je ne sais pas. – Andrew

+0

J'ai testé sur un émulateur en cours d'exécution 2.0 et je ne reçois pas l'erreur (je testais précédemment sur 2.1) – Andrew

14

exécutez-vous sur un émulateur au niveau 13 ou supérieur de l'API? Android issue 19857

+1

J'ai ce problème sur l'émulateur ICS. Y a-t-il une solution de contournement? –

+2

Pour contourner le problème, inscrivez-vous aux mises à jour suivantes: for (Fournisseur de chaînes: locationManager.getAllProviders()) {locationManager.requestLocationUpdates (provider, 0, 0, this); } –

Questions connexes