Use the FusedLocationProviderClient class. This is the one google wants us to use.
I'm providing you with a short sample.
private FusedLocationProviderClient mFusedLocationClient;
private LocationRequest locationRequest;
private LocationCallbackImpl mLocationCallback = null;
...
if (mFusedLocationClient == null) {
locationRequest = new LocationRequest()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(1000)
.setFastestInterval(1000);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
builder.addLocationRequest(locationRequest);
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(activity);
mFusedLocationClient.requestLocationUpdates(locationRequest, mLocationCallback, Looper.myLooper());
}
/**
* Callback class
*/
private class LocationCallbackImpl extends LocationCallback {
private Activity activity;
public LocationCallbackImpl(Activity activity) {
this.activity = activity;
}
@Override
public void onLocationResult(LocationResult locationResult) {
}
}