title: Android Location Client not as Accurate as Google Maps App
body: <p>I want to preface this by saying that I'm in China where Google location services sometimes have issues.</p>
  
  <p>I'm using the <code>LocationClient</code> to get user's current location.</p>
  
  <pre><code>protected void onCreate(Bundle savedInstanceState) {
    ...
    mLocationClient = new LocationClient(this, this, this);
    ...
  }
  </code></pre>
  
  <p>Very straightforward.  Then in my <code>onConnected</code> callback, I get the location.</p>
  
  <pre><code>public void onConnected(Bundle connectionHint) {
    Location location = mLocationClient.getLastLocation();
    ...
  }
  </code></pre>
  
  <p>The location I get back is always the same, but it is about ~500m away from my actual location.  GPS is enabled, although the icon indicating it is being used does not come on.  I am also on WiFi and have 3G.  </p>
  
  <p>When I open the actual Google Maps app, my location is perfectly accurate (unlike the location I get in my own app).  I also see the icon indicating GPS is being used.</p>
  
  <p><em>Questions</em></p>
  
  <ol>
  <li>What is the Google Map app doing differently to get a more accurate location and how do I do what they do?</li>
  <li>If the wrong location I get back is always the same what does that mean?  Without overthinking too much, it is a truth of China that foreign map data companies have coordinates the are skewed off by a factor and they have to use a specific algorithm to correct for that difference; is the Google Maps app doing that?</li>
  </ol>
  
  <p>Thanks!</p>