Apesar de ter feito tudo conforme foi explicado, o mapa não está centralizando. Debuguei o código e o método onLocationChanged não é executado.....
public class AtualizadorDePosicao implements LocationListener {
private LocationManager locationManager;
private MapaFragment mapa;
public AtualizadorDePosicao(Activity activity, MapaFragment mapa){
this.mapa = mapa;
locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);//Retorna Serviço de localização
//Parâmetro 1 - Provider: Utilizado pelo LocationManager para determinar a posição
//Parâmetro 2 - MinTime: Tempo mínimo para fazer uma nova leitura da posição
//Parâmetro 3 - minDistance: Distância mínima para fazer uma nova leitura da posição
//Parâmetro 4 - Listener: Fica atento a mudança de localização
String provider = locationManager.GPS_PROVIDER; //Informa a utilização do GPS
long tempoMinimo = 2000;//2segundos
float distanciaMinima = 20;//20m
locationManager.requestLocationUpdates(provider, tempoMinimo, distanciaMinima, this);
}
public void cancelar() {
locationManager.removeUpdates(this);
}
//Informa quando a posição mudou
@Override
public void onLocationChanged(Location novaLocalizacao) {
//Tem que converter o location para LatLng
double latitude = novaLocalizacao.getLatitude();
double longitude = novaLocalizacao.getLongitude();
LatLng local = new LatLng(latitude, longitude);
mapa.centralizaNoLocal(local);
}
//Utilizar outra forma de localização
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
}