获取android设备位置的最可靠方法是啥?

Posted

技术标签:

【中文标题】获取android设备位置的最可靠方法是啥?【英文标题】: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 之后,我还需要处理其他权限。 有没有可靠的方法来获取位置?

【问题讨论】:

***.com/questions/3145089/… ***.com/questions/15997079/… 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于获取android设备位置的最可靠方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

获取运行我的应用程序的 Android 设备 IP 的最可靠方法是啥?不是公网IP

在Android中获取用户当前位置的最简单方法是啥?

在多个 iOS 和 Android 设备之间保持数据库同步的最简单方法是啥?

检查浮点变量是不是为整数的最可靠方法是啥?

使用 awk 有效解析 CSV 的最可靠方法是啥?

在 JavaScript 中隐藏/欺骗引荐来源网址的最可靠方法是啥?