这个问题已经有了答案:
Detect if Android device has Internet connection
10个答案
我尝试了下面的代码来检查我的手机是否连接到无线网络,当我想知道我的手机是否连接到无线网络时,它工作得很好,但它无法提供有关互联网接入的信息…类似于“ping”任何网站。
实际上,我跟踪了很多链接,但仍然没有答案,所以如果有人能帮忙,我将非常感谢。
提前谢谢。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Toast t = new Toast(getApplicationContext());

    if (isInternetOn()) {
         // INTERNET IS AVAILABLE, DO STUFF..
         Toast.makeText(ConnectivityTestActivity.this,"Network is Available", Toast.LENGTH_LONG).show();

         }
    else {
         // NO INTERNET AVAILABLE, DO STUFF..
        Toast.makeText(ConnectivityTestActivity.this,"No Network Available", Toast.LENGTH_LONG).show();

        }
}

public final boolean isInternetOn() {


    ConnectivityManager connec =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    // ARE WE CONNECTED TO THE NET
    if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
    return true;
    } else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  ) {

    return false;
    }
    return false;
    }}

编辑:
下面的链接包含了一个很好的ping google服务器并获得结果的答案
https://stackoverflow.com/a/16458623/1239911

最佳答案

实际上,我使用了相同的函数isInternetOn(),但删除了连接条件。
它必须检查连接的状态,如果连接与否,如果它正在尝试连接。这对我不起作用,所以我删除了连接状态检查,然后它就起作用了。
谢谢你的回复。

public final boolean isInternetOn()
{
  ConnectivityManager connec = (ConnectivityManager)
    getSystemService(Context.CONNECTIVITY_SERVICE);

  // ARE WE CONNECTED TO THE NET
  if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
       connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED )
  {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
    return true;
  }
  else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
    ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  )
  {
    return false;
  }

  return false;
}

10-06 07:27
查看更多