I followed this tutorial http://developer.android.com/training/location/retrieve-current.html to retrieve the position of my device but it don't work.
When I do this :
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
"mLastLocation" is null, why ?
Edit
I tried to do like in the answere of Niru :
public Location setLocation()
{
Location location;
final int MIN_TIME_BW_UPDATES = 300;
final int MIN_DISTANCE_CHANGE_FOR_UPDATES = 50;
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
String bestProvider = locationManager.getBestProvider(criteria, true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {}
}
location = locationManager.getLastKnownLocation(bestProvider);
localStorage.putFloat("latitude", (float) location.getLatitude());
localStorage.putFloat("longitude", (float) location.getLongitude());
localStorage.commit();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, (LocationListener) this);
return location;
}
@Override
public void onLocationChanged(Location location)
{
localStorage.putFloat("latitude", (float) location.getLatitude());
localStorage.putFloat("longitude", (float) location.getLongitude());
localStorage.commit();
}
But "location" is Null, Why ?