Поставщик слияния в Android

Я разрабатываю приложение с использованием Fused Location Provider. Я сомневаюсь. Для получения местоположения через равные промежутки времени он использует requestLocationUpdates (). Но из какого источника он получает местоположение либо через WIFI, либо через GPS, либо через сеть. В моем приложении он получает местоположение через равные промежутки времени только при включенном WiFi. Когда WiFi находится в выключенном состоянии, он не может получить местоположение (он должен получать местоположение из какого-либо другого источника, либо из GPS или сети. Но он никогда не получает местоположение. Или я должен написать слушателей для GPS и сети). Я не знаю в чем проблема. Может кто-нибудь помочь мне.

И работает ли он только тогда, когда все провайдеры (Wi-Fi, GPS, сеть) доступны или еще.

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

    }       
}

Ответы на вопрос(3)

Ваш ответ на вопрос