Wcześniej, aby uzyskać aktualną lokalizację użytkownika użyłem LocationManager:Czy są jakieś zalety używania FusedLocationProviderApi przez Menedżer położenia?
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
} else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
łatwo jest odczytać kod i bardzo proste.
Ale zauważyłem, że Google niedawno wydany New Client API Model in Google Play Services i sugeruje użycie FusedLocationProviderApi która wygląda o wiele bardziej skomplikowane, to jest asynchroniczny, nie wymaga do obsługi wywołań zwrotnych itp
Czy są jakieś zalety korzystania FusedLocationProviderApi nad LocationManager?
Zapewnia większą dokładność przy mniejszym zużyciu baterii, ponieważ przełącza się między GPS i lokalizacją opartą na Wi-Fi. Aby uniknąć komplikacji, zalecamy korzystanie z tej biblioteki: https://github.com/mcharmas/Android-ReactiveLocation – cYrixmorten