Java Android-检查互联网连接(使用需要登录的开放Wifi点)

Java Android-检查互联网连接(使用需要登录的开放Wifi点),java,android,networking,Java,Android,Networking,我跟着这个 检查我的android设备上是否有互联网连接 代码块如下所示 URL url = new URL("http://www.google.com"); HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); urlc.setConnectTimeout(1000 * 5); // Timeout is in seconds urlc.connect(); if (urlc.getResponseCode()

我跟着这个 检查我的android设备上是否有互联网连接

代码块如下所示

URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(1000 * 5); // Timeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
    // http response is OK
    Log.d("db", "Connection to " + url.toString() + " successful!");
    return true;
}
但是,我的设备连接到开放式Wifi点,需要在访问互联网之前登录网页。即使未登录,此代码似乎也返回true


想知道我能做什么吗?

我想你必须使用这种方法 要检查internet连接,我可以使用

public boolean isOnline()
        {

             ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
             NetworkInfo ni = cm.getActiveNetworkInfo();
             boolean result = false;
             if(ni != null )
             {
                 if(  ni.getState() == NetworkInfo.State.CONNECTED )
                 {
                     result = true;
                 }
             }

             return result;

            } 

如果您有自己的域,请创建一个只包含您选择的一个关键字的网页。 例如:“成功”

现在连接到该页面,而不是谷歌,并检查它是否返回“成功”


您是否要检查wifi或internet连接是否可用您提交的post url表单是什么?实际上,我正在按照我想做的“ping”之类的操作来确认实际上存在internet连接,而不仅仅是网络(wifi/3g)连接。Wifi和3G连接不足以确定我是否已连接到internet。我认为这行代码只检查你是否已连接到网络?ie:Wifi/3G。它不检查互联网连接是否处于活动状态?我可以检查wifi是否打开且互联网是否存在,但如何检查wifi是否已启用但互联网连接不存在。请帮助我,我没有自己的web域。我正在使用这段代码,因为我认为它类似于“ping”,它将决定我与该站点的连接是否可用。。。
private boolean checkInternetConnection() {
    ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (conMgr.getActiveNetworkInfo() != null
            && conMgr.getActiveNetworkInfo().isAvailable()
            && conMgr.getActiveNetworkInfo().isConnected()) {
        return true;
    } else {
        Toast toast = Toast
                .makeText(
                        getApplicationContext(),
                        "No Internet Connection Found !!! Please Connect To Internet First",
                        Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
        new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(5000);
                    finish();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
        return false;
    }
}
URL url = new URL("http://www.yourdomain.com/yourpage.html");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(1000 * 5); // Timeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
    // http response is OK

    InputStream in = urlc.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    String line = reader.readLine();
    in.close();
    if (line == "success"){
        Log.d("db", "Connection to " + url.toString() + " successful!");
        return true;
    } else {
        return false;
    }
}