Boa noite, quando abro minha app com o gps ativo e executo o método para localizar a minha posição atual ele realiza o processo perfeitamente, mas se eu desativar o GPS e ativa-lo novamente e pedir para localizar de novo ele da erro, pois o LocationServices retorna um location null.
Meu código esta assim:
final LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
final boolean gpsIsAtivo = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (gpsIsAtivo) {
if (googleApiClient == null) {
googleApiClient = new GoogleApiClient.Builder(context)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
googleApiClient.connect();
FusedLocationProviderClient minhaLocalizacao = LocationServices.getFusedLocationProviderClient(context);
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
minhaLocalizacao.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
if (latLng != null) {
progressBar.setVisibility(View.VISIBLE);
myLocalizacao(latLng);
}
}
}
});
} else {
Toast.makeText(context, "GPS não esta ativo, verifique.", Toast.LENGTH_SHORT).show();
}
Quando eu reativo o GPS ele diz que esta ativo, mas mesmo assim não pega a localização, alguém pode me ajudar, estou começando meus estudos com o map.