title: Android Location Manager, Get GPS location ,if no GPS then get to Network Provider location
body: <p>I am using this given below code to get locations:</p>
  
  <pre><code>public Location getLocation() {
          try {
              mLocationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
  
              // getting GPS status
              boolean isGPSEnabled = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  
              // getting network status
              boolean isNetworkEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
  
              if (!isGPSEnabled &amp;&amp; !isNetworkEnabled) {
                  // no network provider is enabled
              } else {
                  // First get location from Network Provider
                  if (isNetworkEnabled) {
                      mLocationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER,  MIN_TIME_BW_UPDATES,  MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                      Log.d("Network", "Network");
                      if (mLocationManager != null) {
                          location = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                          if (location != null) {
                              lat = location.getLatitude();
                              lng = location.getLongitude();
                          }
                      }
                  }
                  //get the location by gps
                  if (isGPSEnabled) {
                      if (location == null) {
                          mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                          Log.d("GPS Enabled", "GPS Enabled");
                          if (mLocationManager != null) {location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                              if (location != null) {
                                  lat = location.getLatitude();
                                  lng = location.getLongitude();
                              }
                          }
                      }
                  }
              }
  
          } catch (Exception e) {
              e.printStackTrace();
          }
  
          return location;
      }
  </code></pre>
  
  <p>It is working properly, but I would like to get GPS location first, and in case if it is unavailable , location manager should query for Network provider, in which I am getting trouble.</p>
  
  <p>Please, recommend me the good way to do this.</p>