LocationManager locationManager = context.getSystemService(Context.LOCATION_SERVICE);
String provider = LocationManager.GPS_PROVIDER;
Location lastKnownLocation = locationManager.getLastKnownLocation(provider);
if (null != lastKnownLocation) {
Toast.makeText(getActivity().getApplicationContext(),String.valueOf(lastKnownLocation.getLatitude() + lastKnownLocation.getLongitude()),Toast.LENGTH_SHORT).show();
}
Но проверить, что делает действительно getLastKnownLocation возвращается и делает это вписывается в контекст приложения. В противном случае вы должны использовать шаблон прослушивателя для получения последнего места.
Но я не рекомендую использовать getLastKnownLocation
, если вы хотите получить последнее место. Вы можете попробовать реализовать что-то вроде этого:
class MyFragment extends Fragment {
private void makeUseOfNewLocation(Location location) {
// some magic code which uses location object
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
LocationManager locationManager = (LocationManager)activity.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
makeUseOfNewLocation(location);
locationManager.removeUpdates (this);
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
}
Он гарантирует, что вы всегда получите объект местоположения и только один раз.
Возможный дубликат: http://stackoverflow.com/questions/7979230/how-to-read-location-only-once-with-locationmanager-gps-and-network-provider-a – dlimos
Смотрите здесь http: // stackoverflow.com/a/5314266/2159780 Вам просто нужно использовать LocationManager – grig