4 votes

comment accéder à la fonction ACCESS_FINE_LOCATION lorsque le GPS est désactivé ?

Je voudrais obtenir la localisation précise de NETWORK_PROVIDER garder le GPS éteint afin d'économiser la batterie. Cela semble impossible car Android, lorsqu'il ACCESS_FINE_LOCATION est spécifié, active le GPS même si la localisation n'est pas demandée à GPS_PROVIDER.

J'ai ajouté :

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

dans le manifeste. J'en avais besoin pour éviter qu'Android n'obscurcisse une position précise.

J'ai enregistré les mises à jour en utilisant simplement NETWORK_PROVIDER et non GPS_PROVIDER :

myLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 
        60000, 0, locationListener);

Le GPS s'allume de toute façon. Comment puis-je l'éviter (sans obliger l'utilisateur à désactiver le GPS, ce qui fonctionne en fait mais n'est pas souhaité) ?

2voto

Mathias Points 833

Cela semble étrange, si vous n'avez pas demandé de mises à jour de la localisation au fournisseur de GPS, il ne devrait pas démarrer le GPS.

Permettez-moi toutefois de vous donner un conseil : ne comptez pas sur le fournisseur de réseau pour vous offrir une précision "fine", à moins que vous ne soyez assis sur un réseau wifi dont google connaît la position.

Le positionnement basé sur les tours cellulaires a généralement une précision d'environ 500 à 2000 m, voire 3 à 500 m dans les centres-villes.

0voto

Marian Paździoch Points 164

Utilisez soit ACCÈS_FINE_LOCATION si vous voulez que le GPS soit utilisé ou ACCÈS_LOCALISATION_GROSSIÈRE si vous ne voulez pas utiliser le GPS.

0voto

user2246302 Points 366

Si vos technologies de positionnement sont désactivées pour économiser de l'énergie, comment pouvez-vous espérer obtenir une position précise ? Ce serait comme attendre d'une voiture qu'elle vous emmène au travail mais ne pas vouloir y mettre de l'essence. tanstaafl.

Comme nous l'avons mentionné plus haut, le positionnement WiFi peut vous donner une assez bonne précision de localisation si vous vous trouvez à proximité de quelques APN connus de Google. Avec suffisamment de temps et de personnes utilisant leur téléphone, Google finira par connaître tous les APN qui ne bougent pas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X