Android:locationManager GPS_provider VS Network_provider

Posted

技术标签:

【中文标题】Android:locationManager GPS_provider VS Network_provider【英文标题】:Android: locationManager GPS_provider VS Network_provider 【发布时间】:2017-10-06 02:26:27 【问题描述】:

我已经准备好这两行代码,可以在我的应用程序中请求用户位置的部分中使用:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 0, locationListener);

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, locationListener);

问题是,在真实设备中进行测试时,我注意到在某些地方(例如建筑物内部)使用GPS_provider 效果不佳....应用卡在等待获取 GPS 坐标,这需要花费大量时间,或者除非我有开阔的天空条件,否则永远不会来。

问题是:我该怎么做才能默认使用GPS_provider,但是如果获取gps坐标的时间超过XXXX秒,则切换到Network_provider并获取位置来自网络。

小修改:在使用 GPS 或网络提供商之前是否可以通过任何方式检查 GPS 信号强度?

【问题讨论】:

***.com/a/3551743/5094531 这可能会有所帮助 好的,谢谢!这对问题的第二部分很有帮助! 是的.....在第一部分工作:) 【参考方案1】:

LocationListener 有一个函数onStatusChanged()。你必须重写这个函数来检查 GPS_PROVIDER 的状态并相应地采取必要的行动,在你的情况下是切换到 NETWORK_PROVIDER。

希望这能回答您的问题

【讨论】:

感谢您的回答,在 GPS 尝试获取位置 XXX 秒后,仍然需要弄清楚如何切换提供商......也许最好使用getBestProvider并添加@ 987654324@with a speedrequirement??

以上是关于Android:locationManager GPS_provider VS Network_provider的主要内容,如果未能解决你的问题,请参考以下文章

Android:isProviderEnabled(LocationManager.NETWORK_PROVIDER) 不起作用。只有 isProviderEnabled(LocationManage

Android : LocationManager 动态调整 minTime/minDistance 阈值

Android - LocationManager 小数点后的数字

Android之LocationManager

Android - 使用 LocationManager 不会提供地理修复

Android:LocationManager 构造函数的循环器