我想我明白网络位置轮询需要互联网连接才能检索与手机信号塔和wifi网络相关的正确位置(lat / lon)。正确的吗?
然后这是我的问题: 我有一个轮询位置的应用程序,当wifi / 3g打开时它工作正常。 但是,当wifi / 3g关闭时,它会继续给出最后一个已知位置(而不是没有),尽管我没有要求最后一个位置在我的代码中修复它。是否涉及某种缓存,如果是,如何忽略它?
由于
答案 0 :(得分:0)
我在请求NETWORK_PROVIDER的位置更新之前,通过添加对任何已连接网络的检查来解决此问题。
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}
这是一个简单请求的解决方案。如果要确定网络何时开启/关闭以及请求/删除位置更新,则必须使用ConnectivityManager的功能。它在网络连接发生变化时发送广播意图。