O projeto inteiro está aqui: https://github.com/adrianoschmidt/android-location-sample
Mas o segredo está nesta classe: MainActivity.java
Basicamente você tem q seguir esses 6 passos:
1) Sua Activity deve implementar as classes GoogleApiClient.ConnectionCallbacks e GoogleApiClient.OnConnectionFailedListener
public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
2) Criar um atributo do tipo GoogleApiClient
private GoogleApiClient googleApiClient;
3) No onCreate ou na chamada de um botão você deve verificar se está tudo certo com a API que pega a localização e se estiver construir a API e se conectar nela.
if (this.checkIfGooglePlayServicesAreAvailable()) {
this.buildGoogleApiClient();
this.mGoogleApiClient.connect();
}
Verificando:
private boolean checkIfGooglePlayServicesAreAvailable() {
int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (errorCode != ConnectionResult.SUCCESS) {
System.out.println("GooglePlayServices errorCode: " + errorCode);
GooglePlayServicesUtil.getErrorDialog(errorCode, this, 0).show();
return false;
}
return true;
}
4) Implementar o método onConnected e pegar a localicação (aqui no exemplo seto em dois TextViews que tenho na minha tela)
@Override
public void onConnected(Bundle bundle) {
TextView textViewLatitude = (TextView) findViewById(R.id.textViewLatitude);
TextView textViewLongitude = (TextView) findViewById(R.id.textViewLongitude);
Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
if (mLastLocation != null) {
textViewLatitude.setText("Lat: " + String.valueOf(mLastLocation.getLatitude()));
textViewLongitude.setText("Lng: " + String.valueOf(mLastLocation.getLongitude()));
}
}
5) Implementar os métodos de suspensão e de falha:
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
6) Solicitar a permissão no manifest
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Basicamente é isso, qualquer coisa baixe o projeto no github ou comenta aqui no post.
Abraço!
Adriano Schmidt


