L' LocationManager
API sur Android semble être un peu pénible à utiliser pour une application qui n'a besoin que d'une approximation occasionnelle et approximative de l'emplacement de l'utilisateur.
L'application sur laquelle je travaille n'est pas vraiment une application de localisation en soi, mais elle doit obtenir l'emplacement de l'utilisateur afin d'afficher une liste des entreprises à proximité. Il n'a pas besoin de s'inquiéter si l'utilisateur se déplace ou quelque chose comme ça.
Voici ce que j'aimerais faire:
- Montrez à l'utilisateur une liste de lieux à proximité.
- Préchargez l'emplacement de l'utilisateur de sorte que lorsque j'en aurai besoin dans
Activity
X, il sera disponible. - Je ne me soucie pas particulièrement de l'exactitude ou de la fréquence des mises à jour. Il suffit de saisir un emplacement pour autant qu'il ne soit pas loin. Peut-être que si je veux être fantaisiste, je mettrai à jour l'emplacement une fois toutes les quelques minutes, mais ce n'est pas une énorme priorité.
- Fonctionne pour n'importe quel appareil tant qu'il dispose d'un GPS ou d'un fournisseur de localisation réseau.
Il semble que cela ne devrait pas être si difficile, mais il me semble que je dois faire tourner deux fournisseurs de localisation différents (GPS et RÉSEAU) et gérer le cycle de vie de chacun. Non seulement cela, mais je dois dupliquer le même code dans plusieurs activités pour satisfaire # 2. J'ai essayé d'utiliser getBestProvider()
dans le passé pour réduire la solution à un seul fournisseur de localisation, mais cela ne semble vous donner que le meilleur fournisseur "théorique" plutôt que le fournisseur qui va réellement vous donner les meilleurs résultats.
Existe-t-il un moyen plus simple d'accomplir cela?