Get user current and exact location using GPS [dup

2019-08-10 06:34发布

问题:

This question already has an answer here:

  • How do I get the current GPS location programmatically in Android? 22 answers

For my new app, I need to get user location using GPS. To do so, I am using fusedLocationProviderApi.getLastLocation. Most of the time I am getting null.

But then I realized that all the APIs are intended to get notified on Location changed. But I want to take current exact location of user (consider user not moving) in the app.

How do I get the Location object so that I don't get null each time.

回答1:

You can use this code in OnCreate() method to get location

// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      // Called when a new location is found by the network location provider.
      makeUseOfNewLocation(location);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);


标签: android gps