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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...