0

当我使用下面的代码显示我的连接状态时,“if”条件总是返回“true”,除非我将“netinfo”设置为“null”。

问题出在哪里?

public boolean isConnectedToInternet()
{   
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if ( netInfo.isConnectedOrConnecting())
        {
            Toast.makeText(this, "On",Toast.LENGTH_LONG).show();
            Log.i("NewsList", "Internet Connection found.");
            return true;
        }

    Toast.makeText(this, "Off",Toast.LENGTH_LONG).show();
    return false;
}
4

1 回答 1

1

尝试以下操作:

DetectConnection.class:

public class DetectConnection {
    /*
     * Checking internet connection
     */
    public static boolean checkInternetConnection(Context context) {

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

        if (con_manager.getActiveNetworkInfo() != null
                && con_manager.getActiveNetworkInfo().isAvailable()
                && con_manager.getActiveNetworkInfo().isConnected()) {
            return true;
        } else {
            return false;
        }
    }
}

从另一个活动中检查互联网:

if (DetectConnection.checkInternetConnection(this)) {
        //do something
}
于 2013-09-01T08:25:20.713 回答