Dois-je utiliser android LocationManager.getBestProvider chaque fois je demande de l'emplacement des mises à jour?
Je suis en utilisant Google Api et le MapActivity, MapView etc..
Quand j'en ai besoin pour obtenir mon emplacement actuel j'utilise ce code la PREMIÈRE FOIS :
myLocationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
//Sets the criteria for a fine and low power provider
Criteria crit = new Criteria();
crit.setAccuracy(Criteria.ACCURACY_FINE);
crit.setPowerRequirement(Criteria.POWER_LOW);
//Gets the best matched provider, and only if it's on
String provider = myLocationManager.getBestProvider(crit, true);
//If there are no location providers available
if (provider == null){
OnClickListener listener = new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//Closes the activity
finish();
}
};
Utils.getInstance().showAlertDialog(this, R.string.warning_dialog_title,
R.string.no_location_providers_error_message,
android.R.drawable.ic_dialog_alert, false, listener);
}
//Location services is enabled
else{
myLocationListener = new MyLocationListener();
myLocationManager.requestLocationUpdates(
provider,
0,
0,
myLocationListener);
//TODO - put a marker in my location
GeoPoint currentGeoPoint = MapUtils.getInstance().
getCurrentLocation(myLocationManager, provider);
//Center to the current location
centerLocation(currentGeoPoint, MAX_ZOOM);
}
J'ai aussi un "retour à l'emplacement actuel du bouton" lorsque l'utilisateur déplace la carte autour de et veut revenir rapidement à son emplacement actuel.
Ma question est,
dois-je utiliser le getBestProvider()
méthode chaque fois je veux obtenir des informations de localisation?
J'ai pu enregistrer la dernière choisie fournisseur, mais les conditions ne changent à chaque seconde:
- Utilisateur désactivé GPS
- Aucun signal GPS
- NETWORK_PROVIDER est mieux dans la situation actuelle
- etc..
Quelle est la bonne approche?
stackoverflow.com/questions/3145089/.... Vérifier le lien. Vous pouvez trouver les réponses à vos questions.
Ce n'est toujours pas la réponse à ma question. Mon code fonctionne également. Mais dois-je ou ne dois-je pas appeler la getBestProvider à chaque fois? À mon avis oui..
developer.android.com/guide/topics/location/.... Vous devriez probablement par le biais de ce lien.
Merci!! qui a fait le tour 🙂
Ce n'est toujours pas la réponse à ma question. Mon code fonctionne également. Mais dois-je ou ne dois-je pas appeler la getBestProvider à chaque fois? À mon avis oui..
developer.android.com/guide/topics/location/.... Vous devriez probablement par le biais de ce lien.
Merci!! qui a fait le tour 🙂
OriginalL'auteur Or Kazaz | 2012-10-16
Vous devez vous connecter pour publier un commentaire.
Comme dit sur les commentaires,
c'est la réponse:
http://developer.android.com/guide/topics/location/strategies.html#BestEstimate
OriginalL'auteur Or Kazaz
Vous pouvez toujours l'utiliser , mais assurez-vous de vérifier sur le Emplacement.getTime() -> ce serait vous dire le temps qu'il a été fixé et donc, vous pouvez facilement distinguer les frais et obsolètes emplacement des correctifs.
OriginalL'auteur cafebabe1991