首页 文章

确保http连接通过wifi

提问于
浏览
3

我在应用程序上有一个小服务,在白天收集数据,并将数据保存到SD卡 . 一个前提是数据会很大,因此app在任何情况下都不应该通过用户的数据计划上传数据 .

在某些情况下,wifi“存在”但无法使用,并且电话会尽可能地使用数据计划连接来尽可能地路由网络请求 .

有没有办法,无论多么脏,以确保请求只通过wifi连接或否则失败?

编辑:

通过阅读我的问题,我发现我没有详细解释发生了什么 . 我正在从环境中收集数据(某种形式的日志记录),并且数据会累积在SD卡上 . 当用户在家附近或在家(或任何其他启用WiFi的地方)时,软件应检测到该内容并通过http POST请求使SD卡内容出列 . 文件大小为1MB或更大,因此即使我检测到Wifi的存在,它也可能在传输过程中发生变化 . 或者更糟糕的是,Wifi可以打开,但不可路由,因此电话通过您的数据计划路由连接,并破坏您当月的预算 .

1 回答

  • 0

    你可以用两件事来做到这一点:

    1-在您上传之前,请通过Wi-Fi连接当前的移动设备,这是一个示例功能

    public static boolean isConnectedToWiFi(Context context) {
        NetworkInfo activeNetwork = getConnectivityManager(context)
                .getActiveNetworkInfo();
        if (activeNetwork != null) {
            return activeNetwork.isConnected()
                    && activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
        }
        return false;
    }
    

    2-监听连接更改broadcase android.net.conn.CONNECTIVITY_CHANGE 以监视连接何时发生变化,例如切换到3G

相关问题