确保http连接通过wifi

时间:2013-02-09 22:27:22

标签: android wifi

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

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

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

编辑:

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

1 个答案:

答案 0 :(得分: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-收听连接更改广告android.net.conn.CONNECTIVITY_CHANGE以监控连接何时发生变化,例如切换到3G