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

mix*_*kat 10 gps android location geolocation locationlistener

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

例如,如果未启用GPS,我希望它使用网络,但只要GPS打开,我就希望它停止从网络收听位置更新并开始从GPS收听.

同样,我希望它在GPS关闭后立即开始收听来自网络的更新.

那可能吗?


Subquestion

GPS在提供定位方面是否与网络一样快?


typ*_*.pl 9

当然,您只需获得网络和GPS的提供商,并通过您想要的任何一个locationManager.requestLocationUpdates().

如果要停止侦听某个提供程序,请locationManager.removeUpdates()使用您指定的侦听器对象进行调用locationManager.requestLocationUpdates().

网络:

Criteria crit = new Criteria();
crit.setPowerRequirement(Criteria.POWER_LOW);
crit.setAccuracy(Criteria.ACCURACY_COARSE);
String provider = locationManager.getBestProvider(crit, false);
Run Code Online (Sandbox Code Playgroud)

全球定位系统:

Criteria crit2 = new Criteria();
crit2.setAccuracy(Criteria.ACCURACY_FINE);
provider2 = locationManager.getBestProvider(crit2, false);
Run Code Online (Sandbox Code Playgroud)

您可以使用LocationManager.isProviderEnabled()doc来查看是否启用了适当的提供程序.LocationManager文档中提供了更多信息.

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