title: How to get current exact location in android without internet connection?
body: <p>I want to get current exact location coordinates in android. I am able to get the location if mobile is connected to Wifi internet connection and but in other case when I go some where else and no internet connection available then it not giving the current location coordinates. instead giving last location coordinates.</p>
  
  <p>For example:</p>
  
  <p>Currently I am in A city and get current coordinates by on the wifi connection and move to City B then I am not able to fetch current coordinates. Instead of this its giving last location coordinates. </p>
  
  <p>Can anyone suggest me how can I get current location without internet connection.</p>
  
  <pre><code>public Location getLocation() {
      try {
          locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
  
          // getting GPS status
          isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  
          // getting network status
          isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
  
          if (!isGPSEnabled &amp;&amp; !isNetworkEnabled) {
              // no network provider is enabled
          } else {
              this.canGetLocation = true;
              // First get location from Network Provider
              if (isNetworkEnabled) {
                  locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                  if (locationManager != null) {
                      location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                      if (location != null) {
                          latitude = location.getLatitude();
                          longitude = location.getLongitude();
                      }
                  }
              }
  
              // if GPS Enabled get lat/long using GPS Services
              if (isGPSEnabled) {
                  if (location == null) {
                      locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                      if (locationManager != null) {
                          location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                          if (location != null) {
                              latitude = location.getLatitude();
                              longitude = location.getLongitude();
                          }
                      }
                  }
              }
          }
  
      } catch (Exception e) {
          e.printStackTrace();
      }
  
      return location;
  }
  
  /**
   * Stop using GPS listener
   * Calling this function will stop using GPS in your app
   * */
  public void stopUsingGPS(){
      if(locationManager != null){
          locationManager.removeUpdates(GetLocations.this);
      }
  }
  
  /**
   * Function to get latitude
   * */
  public double getLatitude(){
      if(location != null){
          latitude = location.getLatitude();
      }
      return latitude;
  }
  
  /**
   * Function to get longitude
   * */
  public double getLongitude(){
      if(location != null){
          longitude = location.getLongitude();
      }
      return longitude;
  }
  </code></pre>