Provedor de localização fundido no Android

Estou desenvolvendo um aplicativo usando o provedor de local fundido. Tenho uma dúvida. Para obter a localização em intervalos regulares, usa requestLocationUpdates (). Mas a partir de qual fonte é obter o local de Wi-Fi ou GPS ou rede. No meu aplicativo, ele obtém a localização em intervalos regulares somente quando o WiFi está ativado. Quando o Wi-Fi está no estado DESLIGADO, ele não consegue a localização (supõe-se que ele obtenha a localização de alguma outra fonte, seja GPS ou Rede. Mas nunca obtém localização. Ou eu tenho que escrever ouvintes para GPS e Rede). Eu não sei qual é o problema. Alguém pode me ajudar.

E, se funciona apenas quando todos os provedores (Wi-Fi, GPS, Rede) disponíveis ou mais.

public void checkPlay(){

  int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if (resp == ConnectionResult.SUCCESS) {
        locationClient = new LocationClient(this, this, this);
        locationClient.connect();
    } else {
        Toast.makeText(this, "Google Play Service Error " + resp,
                Toast.LENGTH_LONG).show();

    }
 }


public void onConnected(Bundle arg0) {
    // TODO Auto-generated method stub


    if (locationClient != null && locationClient.isConnected()) {

        locationRequest = LocationRequest.create();
        locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        locationRequest.setInterval(100);
        locationClient.requestLocationUpdates(locationRequest, this);

    }
}

        public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    try {
        if (location != null) {
            lat = location.getLatitude();
                            long = location.getLongitude();
        }
    } catch (Exception e) {
        Log.d(Fots.TAG,
                "GpsTrackService.mGpsLocationListener.onLocationChanged", e);

    }       
}

questionAnswers(3)

yourAnswerToTheQuestion