我正在研究地理定位应用,因为我想使用Gps提供商,因为它提供的准确位置比网络提供商。但有时室内gps信号没有到达那么我想使用网络提供商。每当Gps信号没有达到那个时间我想使用网络提供商。如何在这些提供商之间切换?
谢谢, Vishakha。
答案 0 :(得分:0)
查看http://developer.android.com/guide/topics/location/obtaining-user-location.html处的样本。
如果使用onStatusChanged方法暂时无法使用位置提供程序,则会通知locationListener。
答案 1 :(得分:0)
如果你有一个打开或关闭变量的按钮,你可以在这样的提供者之间切换(抱歉这是伪代码)。
if (GPSisOff){
LocationProvider locationProvider = LocationManager.NETWORK_PROVIDER;
} else {
LocationProvider locationProvider = LocationManager.GPS_PROVIDER;
}
此外,这取决于您是否希望它自动检测。如果是这种情况,您可能需要检查当前locationProvider的位置返回(无论是GPS还是网络)并确定其准确程度并进行相应切换。
答案 2 :(得分:0)
您可以做的另一件事是为gps和网络提供商使用相同的LocationListener。因此,您可以同时启用两者,而不是仅使用gps或仅使用网络,以便您的应用程序的LocationListener将从两个提供程序(或唯一可用的,如果另一个无法提供更新)接收位置更新。