【发布时间】:2011-06-08 11:45:31
【问题描述】:
我正在研究地理定位应用程序,因为我想使用 Gps 提供商,因为它比网络提供商提供准确的位置。但有时在室内 gps 信号没有到达,然后我想使用网络提供商。每当 Gps 信号没有到达时时间我想使用网络提供商。如何在这些提供商之间切换?
谢谢, 维沙哈。
【问题讨论】:
标签: android geolocation
我正在研究地理定位应用程序,因为我想使用 Gps 提供商,因为它比网络提供商提供准确的位置。但有时在室内 gps 信号没有到达,然后我想使用网络提供商。每当 Gps 信号没有到达时时间我想使用网络提供商。如何在这些提供商之间切换?
谢谢, 维沙哈。
【问题讨论】:
标签: android geolocation
如果你有一个打开或关闭变量的按钮,你可以像这样在提供者之间切换(对不起,这是伪代码)。
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 将从两个提供者(或者如果另一个无法提供更新,则从唯一可用的提供者)接收位置更新。
【讨论】: