使用Google Play服务尽快获取当前位置信息?

时间:2017-03-13 16:18:58

标签: android location google-play-services

我正在开发一个Android应用程序,我需要获取我当前的位置。我已成功编写代码,并使用 Google Play服务获取当前位置。

问题是有时它会在很长一段时间后给我提供位置。我注意到它只是首次使用该应用程序。

有什么方法可以避免这个问题并快速获取当前位置?它与我的代码中的Google Play服务版本有关吗? (我没有使用最后一个,实际上我使用的是版本9.8.0。)

1 个答案:

答案 0 :(得分:0)

正如@tahsinRupam所说,避免使用getLastLocation,因为它很有可能返回null。它也不会请求新位置,因此即使您获得了位置,它也可能非常陈旧,并且不会反映当前位置。您可能需要检查此主题中的示例代码:get the current location fast and once in android

public void foo(Context context) {
  // when you need location
  // if inside activity context = this;

  SingleShotLocationProvider.requestSingleUpdate(context, 
   new SingleShotLocationProvider.LocationCallback() {
     @Override public void onNewLocationAvailable(GPSCoordinates location) {
       Log.d("Location", "my location is " + location.toString());
     }
   });
}
     

您可能想要验证纬度/经度是实际值而不是0或其他值。如果我没记错的话,这不应该抛出NPE,但你可能想要验证它。

这是另一个可能有用的SO帖子: