wifi / 3g关闭时的位置轮询问题

时间:2012-01-04 17:54:37

标签: android geolocation

我想我明白网络位置轮询需要互联网连接才能检索与手机信号塔和wifi网络相关的正确位置(lat / lon)。正确的吗?

然后这是我的问题: 我有一个轮询位置的应用程序,当wifi / 3g打开时它工作正常。 但是,当wifi / 3g关闭时,它会继续给出最后一个已知位置(而不是没有),尽管我没有要求最后一个位置在我的代码中修复它。是否涉及某种缓存,如果是,如何忽略它?

由于

1 个答案:

答案 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的功能。它在网络连接发生变化时发送广播意图。