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