title: Why is FusedLocationApi.getLastLocation null
body: <p>I am trying to get location by using <code>FusedLocationApi.getLastLocation</code> and I've got the location permissions in the manifest file:</p>
  
  <pre><code>&lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
  </code></pre>
  
  <p>However, I am getting <code>null</code> when I request the location from the system. I was just testing turning off and on location services so it may be related to that (of course, it's ON when I'm trying this). But even after returning null, I'm waiting for <code>onLocationChanged</code> to be called and it's never called. I've also seen a similar question here: <a href="https://stackoverflow.com/questions/29441384/fusedlocationapi-getlastlocation-always-null">FusedLocationApi.getLastLocation always null</a></p>
  
  <p>Here is my code:</p>
  
  <pre><code> protected LocationRequest createLocationRequest() {
      LocationRequest mLocationRequest = new LocationRequest();
      mLocationRequest.setInterval(120000);
      mLocationRequest.setFastestInterval(30000);
      mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
      return mLocationRequest;
  }
  
  protected GoogleApiClient getLocationApiClient(){
      return new GoogleApiClient.Builder(this)
              .addConnectionCallbacks(this)
              .addOnConnectionFailedListener(this)
              .addApi(LocationServices.API)
              .build();
  }
  
  LocationRequest locationRequest = createLocationRequest(); 
  
  @Override
  public void onLocationChanged(Location location) {
      App.setLocation(location); // NEVER CALLED
  }
  
  @Override
  public void onConnected(Bundle bundle) {
      App.setLocation(LocationServices.FusedLocationApi.getLastLocation(locationApiClient)); //RETURNS NULL
      LocationRequest locationRequest = createLocationRequest();
      LocationServices.FusedLocationApi.requestLocationUpdates(locationApiClient, locationRequest, this);
  }
  </code></pre>
  
  <p>And on <code>onCreate</code> of my app:</p>
  
  <pre><code>locationApiClient = getLocationApiClient();
  locationApiClient.connect();
  </code></pre>
  
  <p>Where <code>this</code> is my application object.
  Why am I getting null (yes, I <em>do</em> know it may be null in some rare circumstances as stated in the documents, but I'm ALWAYS getting this, not rarely) <strong>and</strong> still not getting location updates thereafter? It's a real device (Samsung Galaxy S3) without a SIM card, if it helps.</p>