Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida 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?

1 resposta
solução!

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);
    }
}