【问题标题】:What is the most reliable method to get Location of an android device?获取android设备位置的最可靠方法是什么?
【发布时间】:2016-07-31 01:07:25
【问题描述】:

我现在使用的方法非常不可靠。 在我的 Android 设备(不是模拟器)中,大多数时候返回的位置是 null 。虽然有时它确实有效。

 public Location getLocation(String provider) {
    if (locationManager.isProviderEnabled(provider)) {
        locationManager.requestLocationUpdates(provider,
                MIN_TIME_FOR_UPDATE, MIN_DISTANCE_FOR_UPDATE, this);
        if (locationManager != null) {
            location = locationManager.getLastKnownLocation(provider);
            return location;
        }
    }
    return null;
}

我知道在引入 API 23 之后,我还需要处理其他权限。 有没有可靠的方法来获取位置?

【问题讨论】:

标签: android gps location android-location


【解决方案1】:

相信我,获取位置最可靠的方法是依靠 'onLocationChanged' 方法,因为调用 getLastKnownLocation 方法并不意味着您获得了新的位置或非空结果。你可以阅读下面的documentation

这可以在不启动提供程序的情况下完成。请注意,这 位置可能已过期,例如,如果设备已转动 关闭并移动到另一个位置。

如果提供者当前被禁用,返回null

最后我要注意的是,调用 requestLocationUpdates 方法并不意味着它会尽快为您提供位置。所以这就是为什么我提到你'onLocationChanged'回调方法。

【讨论】:

    【解决方案2】:

    查看 github 上与位置相关的 google 示例:

    https://github.com/googlesamples/android-play-location

    如何获取最近的已知位置、位置更新等

    【讨论】:

      猜你喜欢
      • 2011-03-09
      • 1970-01-01
      • 2018-11-15
      • 2012-08-31
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多