互联网检查连接无法正常工作android.net.isConected()

时间:2013-06-07 13:56:13

标签: android android-activity network-state

此问题与how-do-you-check-the-internet-connection-in-android有关。

@William解决方案对我很有帮助,但在有限的连接上它无法正常工作。

我已连接到无线调制解调器,但此调制解调器未连接到互联网。

根据android docs这个函数应该做的所有工作,但我认为函数检查的数据只在android - >之间。调制解调器,而不是android - > webservice(互联网)。

@William代码是:

final ConnectivityManager conMgr =  (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
     //notify user you are online
} else {
     //notify user you are not online
} 

我可以做些什么来检查互联网连接?我错过了什么?

2 个答案:

答案 0 :(得分:1)

我认为作为替代方案,您可以向远程URL发出实际的HTTP请求,看看它是否成功。

答案 1 :(得分:0)

试试这个

  public static boolean isInternetConnection(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    final android.net.NetworkInfo mobile = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (wifi.isAvailable()
            && wifi.getState() == NetworkInfo.State.CONNECTED) {
        return true;
    } else if (mobile.isAvailable()
            && mobile.getState() == NetworkInfo.State.CONNECTED) {
        return true;
    } else {
        return false;
    }
}

public static boolean isWifi(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if (wifi.isAvailable()) {
        return true;
    } else {
        return false;
    }
}

public static boolean isOtherNetwork(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo mobile = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (mobile.isAvailable()) {
        return true;
    } else {
        return false;
    }
}

在你的清单中添加权限

        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>