0

我想检查“Wifi”是否已连接,但如何检测互联网是否可用?因为在我的“MainActivity.java”中,我通过以下代码检查互联网连接以及互联网的可用性。

public static boolean isConnectedToInternet(Context context) {

   ConnectivityManager cm = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        Log.d("INTERNET_CONNECTION", "Internet is working");

        return true;
    } else {
        Log.d("INTERNET_CONNECTION", "Internet is Not Available");
        return false;
    }

}

如果互联网可用(数据和信号正常),“进度条”可见并加载内容,加载过程完成,“进度条”不可见。如果互联网不可用(无数据或无信号),则“进度条”不可见并显示错误。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

        if (isConnectedToInternet(context)== true)
        {
            progressLayout.setVisibility(View.VISIBLE);

            // load the content
        }
        else
        {
            progressLayout.setVisibility(View.GONE);

            Toast.makeText(this, "No Internet", Toast.LENGTH_LONG).show;
        }
}

如果互联网可用,代码工作正常,但在互联网不可用时始终显示“进度条”。(无数据或无信号)

4

1 回答 1

0
 public static boolean isNetworkAvailable(Context activity) {
    ConnectivityManager connectivity = (ConnectivityManager) activity
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity == null) {
        return false;
    } else {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null) {
            for (NetworkInfo anInfo : info) {
                if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
                    return true;
                }
            }
        }
    }
    return false;
}
于 2018-03-30T10:35:13.267 回答