问题描述
我想实现一个 locationListener,它将根据可用性在网络和 GPS 提供商之间切换.
I want to implement a locationListener which will switch between network and GPS providers based on availability.
例如,如果 GPS 未启用,我希望它使用网络,但一旦 GPS 开启,我希望它停止侦听来自网络的位置更新并开始侦听 GPS.
For example if GPS is not enabled I want it to use network but as soon as GPS is on then I want it to stop listening for location updates from network and start listening from GPS.
同样,我希望它在 GPS 关闭后立即开始监听来自网络的更新.
Similarly I want it to start listening for updates from network as soon as GPS is switched off.
这可能吗?
子问题
GPS 在提供位置定位方面与网络一样快吗?
Is GPS as fast as network in providing a location fix?
推荐答案
当然,您只需获取网络和 GPS 的提供程序,然后将您想要的任何一个传递给 locationManager.requestLocationUpdates().
Sure, you just get the providers for the network and GPS and pass whichever you want to locationManager.requestLocationUpdates().
当您想停止侦听某个提供程序时,请使用您在 locationManager.requestLocationUpdates() 中指定的侦听器对象调用 locationManager.removeUpdates().
When you want to stop listening to a certain provider, call locationManager.removeUpdates() with the listener object you specified in locationManager.requestLocationUpdates().
网络:
Criteria crit = new Criteria();
crit.setPowerRequirement(Criteria.POWER_LOW);
crit.setAccuracy(Criteria.ACCURACY_COARSE);
String provider = locationManager.getBestProvider(crit, false);
全球定位系统:
Criteria crit2 = new Criteria();
crit2.setAccuracy(Criteria.ACCURACY_FINE);
provider2 = locationManager.getBestProvider(crit2, false);
您可以使用 LocationManager.isProviderEnabled() 文档 查看是否启用/禁用了相应的提供程序.LocationManager 文档中提供了更多信息.
You can use LocationManager.isProviderEnabled() doc to see if the appropriate provider is enabled/disabled. There's more info available in the LocationManager docs.
GPS 通常比网络慢得多,因为您必须找到 3 颗以上遥远的卫星等.
GPS is usually much slower than network since you have to find 3+ far-away satellites, etc.
这篇关于在网络和 GPS 提供商之间切换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)