Android 使用GPS获取用户当前和准确位置

Android 使用GPS获取用户当前和准确位置,android,gps,Android,Gps,对于我的新应用程序,我需要使用GPS获取用户位置。为此,我使用了fusedLocationProviderApi.getLastLocation。大多数情况下,我会得到null但后来我意识到所有API都是为了在位置更改时得到通知。但我想在应用程序中获取用户的当前确切位置(考虑用户未移动)如何获取Location对象,以便每次都不获取null。您可以在OnCreate()方法中使用此代码来获取位置 // Acquire a reference to the system Location Mana

对于我的新应用程序,我需要使用GPS获取用户位置。为此,我使用了
fusedLocationProviderApi.getLastLocation
。大多数情况下,我会得到
null


但后来我意识到所有API都是为了在位置更改时得到通知。但我想在应用程序中获取用户的当前确切位置(考虑用户未移动)

如何获取Location对象,以便每次都不获取
null

您可以在
OnCreate()
方法中使用此代码来获取位置

// 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);

您可以在
OnCreate()
方法中使用此代码来获取位置

// 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);

是的,我同意关于定位的简单想法。但我的观点是,对于上述实现,位置的每次更改都会调用onLocationChanged,而不仅仅是获取站立用户的位置。或者我完全弄错了?你能更新你的位置提供商吗?还有问题。
onLocationChanged()
一旦解决了位置问题,就会触发。用户不需要实际移动。Mike M.感谢您的洞察力:)是的,我同意关于获取位置的简短想法。但我的观点是,对于上述实现,位置的每次更改都会调用onLocationChanged,而不仅仅是获取站立用户的位置。或者我完全弄错了?你能更新你的位置提供商吗?还有问题。
onLocationChanged()
一旦解决了位置问题,就会触发。用户不需要实际移动。Mike M.感谢您的洞察力:)谢谢您的回答。我将尝试解决方案:)如果你发现它有助于投票或接受答案接受你的解决方案。谢谢你的回答。我将尝试解决方案:)如果你发现它有助于投票或接受答案接受你的解决方案。谢谢:)