Boa noite.
Vi que o FusedLocationApi está depreciado, com isso recomendam usar a FusedLocationProviderClient, como poderia fazer para usar esta classe ao invés da FusedLocationApi?
Boa noite.
Vi que o FusedLocationApi está depreciado, com isso recomendam usar a FusedLocationProviderClient, como poderia fazer para usar esta classe ao invés da FusedLocationApi?
Fala ai Rodolfo, de boa ?
Sim, está obsoleto, o google quebrou em pequenos projetos.
Para ter o mapa e o gps é necessário ter essas dependencias:
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'com.google.android.gms:play-services-location:15.0.1'
E aqui tem um exemplo de código para usar ambos:
public class GPS extends LocationCallback {
private FusedLocationProviderClient client;
private GPSDelegate delegate;
public GPS(GPSDelegate delegate) {
this.delegate = delegate;
this.client = LocationServices.getFusedLocationProviderClient(delegate.getContext());
}
@SuppressLint("MissingPermission")
public void fazBusca() {
LocationRequest req = new LocationRequest();
req.setInterval(1000);
req.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
req.setSmallestDisplacement(10);
client.requestLocationUpdates(req, this, null);
}
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
delegate.lidaCom(locationResult.getLastLocation());
}
public void cancelaBusca() {
client.removeLocationUpdates(this);
}
}
public interface GPSDelegate {
Context getContext();
void lidaCom(Location lastLocation);
}
public class MapaFragment extends SupportMapFragment implements OnMapReadyCallback, GPSDelegate {
private GoogleMap map;
private GPS gps;
@SuppressLint("MissingPermission")
@Override
public void onResume() {
super.onResume();
getMapAsync(this);
gps = new GPS(this);
gps.fazBusca();
}
@Override
public void onPause() {
super.onPause();
gps.cancelaBusca();
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
}
@Override
public void lidaCom(Location lastLocation) {
MarkerOptions marker = new MarkerOptions();
LatLng latlng = new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude());
marker.position(latlng);
map.addMarker(marker);
}
}