Je mets:
map.setMyLocationEnabled(true)
Mais je me demande ce que cela fait vraiment. Ce que je sais:
Voici ma préoccupation. J'écris une application de localisation mais je suis préoccupé par la batterie. Ailleurs dans mon application (via les préférences), je configure un LocationManager et écoute les événements de localisation afin de pouvoir les enregistrer. Mais une partie de mes préférences est la précision avec laquelle j'obtiens les mises à jour et l'intervalle.
Lorsque j'éteins mon LocationManager:
locationManange.removeUpdates(LocationListener listener);
Je m'attends à désactiver les services de localisation pour l'ensemble de l'application. Pourtant, je vois toujours la petite icône GPS dans la barre d'en-tête de mon téléphone indiquant que l'application reçoit des mises à jour de position. Je sais que cela vient du fait que je l'ai mis sur ma vue de carte:
map.setMyLocationEnabled(true);
Je pensais à l'origine que si vous n'écoutiez pas les mises à jour de localisation en configurant un LocationManager qui définissait map.setMyLocationEnabled (true) n'aurait aucun effet (c'est-à-dire pas mon icône de localisation ou bouton). Mais ce n'est pas vrai.
Est-ce à dire qu'en appelant map.setMyLocationEnabled (true), google configure son propre LocationManager avec ses propres paramètres? Je voudrais vraiment appeler map.setMyLocationEnabled (true), mais lui faire utiliser mes paramètres pour les mises à jour de localisation, pas quoi que Google fasse sous le capot. Est-ce possible? Ai-je raté quelque chose dans les documents? Je ne trouve rien sur la précision ou l'intervalle configuré sur un LocationManager lorsque j'appelle map.setMyLocationEnabled (true).
Est-ce à dire qu'en appelant map.setMyLocationEnabled (true), google configure son propre LocationManager avec ses propres paramètres?
Pas exactement. Maps V2 tilise LocationClient
par défaut.
Je voudrais vraiment appeler map.setMyLocationEnabled (true), mais lui faire utiliser mes paramètres pour les mises à jour de localisation, pas quoi que Google fasse sous le capot. Est-ce possible?
Vous pouvez tiliser setLocationSource()
pour fournir vos propres données de localisation à utiliser avec la couche my-location. Voici un exemple de projet démontrant cela.