Używam API Google i MapActivity, MapView etc ..
Kiedy muszę dostać moją aktualną lokalizację I użyć tego kodu po raz pierwszy:Czy powinienem używać Androida LocationManager.getBestProvider za każdym razem, gdy pytam o aktualizacje lokalizacji?
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);
}
Mam też „powrót do bieżącej lokalizacji przycisk "- gdy użytkownik przesunie mapę i chce szybko powrócić do swojej aktualnej pozycji.
Moje pytanie brzmi, należy użyć metody getBestProvider()
każdym razem Chcę uzyskać informacje o lokalizacji?
mogłem uratować ostatniego dostawcy wybrany poniżej, ale warunki mogą się zmienić w każdej sekundzie:
- Użytkownik wyłączony GPS
- Brak sygnału GPS
- NETWORK_PROVIDER jest lepszy w obecnej sytuacji
- etc ..
Co to jest właściwe podejście?
http://stackoverflow.com/questions/3145089/what-is-the-simplest-and-most-robust-way- to-get-the-users-current-location-in-a/3145655 # 3145655. Sprawdź link. Możesz znaleźć odpowiedzi na swoje pytania. – Raghunandan
To nadal nie odpowiada na moje pytanie. Mój kod działa również. Ale czy powinienem, czy nie powinienem dzwonić do getBestProvider za każdym razem? Moim zdaniem tak .. –
http://developer.android.com/guide/topics/location/strategies.html#BestEstimate. Prawdopodobnie powinieneś przejść przez ten link. – Raghunandan