-1

可能重复:
检查 android 上的互联网连接

在我的应用程序中,我想检查互联网连接。如果设备未连接到互联网,我想关闭我的应用程序。所以我使用这种方法来检查互联网连接。

public boolean isDeviceConnectedToInternet() {
        ConnectivityManager cm =
            (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
    }

用户权限设置:

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

我关闭了我的 wifi 并运行了应用程序,我在 Log cat 中得到了正确的结果。

在我的 Android 设备上运行时,它正在工作。但我不明白为什么我的模拟器没有发生同样的事情。

4

2 回答 2

2
 public void checkConnection() throws NoInternetException {
    boolean connected = false;

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

    if (cm != null) {
        NetworkInfo[] netInfo = cm.getAllNetworkInfo();

        for (NetworkInfo ni : netInfo) {
            if ( ni.isConnected() && ni.isAvailable() ) {
                connected = true;
            }
        }
    }
    if (! connected) {
        throw new NoInternetException("NO INTERNET CONNECTION");
    }
}

如果没有网络,我在这里抛出异常。无论如何,您可以返回已连接的变量

于 2012-10-01T06:50:26.263 回答
1

检查 Internet 连接的简单代码。

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();

String status = netInfo.getState().toString();
if (status.equals("CONNECTED")) 
{
    //DO you work or return your flag
} 
else 
{
    Log.e("error", "No connection available ");
}
于 2012-10-01T06:53:16.263 回答