我正在开发一个Android应用程序,我需要获取我当前的位置。我已成功编写代码,并使用 Google Play服务获取当前位置。
问题是有时它会在很长一段时间后给我提供位置。我注意到它只是首次使用该应用程序。
有什么方法可以避免这个问题并快速获取当前位置?它与我的代码中的Google Play服务版本有关吗? (我没有使用最后一个,实际上我使用的是版本9.8.0。)
答案 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帖子: