android – 在网络和GPS提供商之间切换

我想实现一个locationListener,它将根据可用性在网络和GPS提供商之间切换.

例如,如果GPS未启用,我希望它使用网络,但一旦GPS打开,我希望它停止监听来自网络的位置更新,并开始从GPS听.

同样地,一旦GPS被关闭,我希望它从网络开始监听更新.

那可能吗?

Subquestion

GPS是否与网络一样快提供位置修复?

解决方法

当然,您只需要获取网络和GPS的提供商,并传递您要定位到的位置.Manager.requestLocationUpdates().

当您想停止监听某个提供程序时,请使用locationManager.requestLocationUpdates()中指定的侦听器对象调用locationManager.removeUpdates().

网络:

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() doc查看是否启用/禁用适当的提供程序. LocationManager文档中有更多的信息可用.

GPS通常比网络慢得多,因为你必须找到3个遥远的卫星等.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...