获取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