通过无线网络与Android中的移动网络请求

时间:2016-06-20 12:20:47

标签: android apache-httpclient-4.x androidhttpclient

我有以下代码行来检查设备是否有互联网。

boolean hasInternet = false;
HttpURLConnection urlc = null;
try {
    urlc = (HttpURLConnection)
           (new URL("http://clients3.google.com/generate_204")
           .openConnection());
} catch (IOException e) {
    e.printStackTrace();
}
urlc.setRequestProperty("User-Agent", "Android");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
hasInternet =  (urlc.getResponseCode() == 204 &&
                urlc.getContentLength() == 0);

当我使用无线互联网连接时,一切都很好并且有互联网值是真的。但是当我使用移动网络提供商时,hasInternet的值总是假的,但我可以在我的移动浏览器中打开任何网站。什么似乎是问题?

1 个答案:

答案 0 :(得分:0)

使用此方法检查移动设备中是否提供isNetwork:

public static boolean isNetwork(Context context) {

        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
    }