在我的应用程序中,我想使用两个位置提供程序。如何在GPS和网络提供商之间切换?
这意味着,如果gps被禁用,我希望我的应用切换到网络,并且启用gps时切换回来。
我正在使用两个LocationListener来处理这两个请求。
public void onStatusChanged(String provider, int status,Bundle extras)
switch (status) {
case LocationProvider.TEMPORARILY_UNAVAILABLE:
......
break;
case LocationProvider.OUT_OF_SERVICE
.....
break;
case LocationProvider.AVAILABLE
.....
break;
}
而且在每个听者,我发现在onStatusChanged()
的状态。 事实证明,这种方法将用于第一次更改(禁用网络),但是当我再次启用网络时,它不会显示任何内容。为什么?监听器不会一直检测到状态?
请帮助我,最好是在代码中发布您的解决方案...谢谢!
看看我的新评论。 – user370305
伙计们,新的解决方案是user370305和Fedor工作的结合。 Fedor做了很大的工作来初始化和选择合适的位置提供商。并在user370305的帮助下。我们可以启动一个线程来检测网络/ gps状态。因为,如果你执行'removeUpdates()',侦听器将不再工作。所以,'案件LocationProvider.AVAILABLE'是无用的。你只能使用这个线程来提出一个新的请求(我知道它不是一个很好的请求,所以如果你有更好的解决方案,请告诉我,我很乐意看到这个!!谢谢!) – alvan