在Android模拟器中检查互联网连接

3

我正在尝试在我的安卓应用中检查网络连接。

    public static boolean isConnectingToInternet(Context _context) {
    ConnectivityManager connectivity = (ConnectivityManager) _context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null)
            for (int i = 0; i < info.length; i++)
                if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                    Log.d("Network",
                            "NETWORKnAME: " + info[i].getTypeName());
                    return true;
                }

    }
    return false;
}

但问题是,当我关闭主机PC的互联网连接并尝试在模拟器中检查互联网连接时,此函数仍返回true,即互联网可用,而我已经关闭了主机PC上的互联网连接。ConnectivityManager类有助于确定是否连接到网络,但不能确定互联网连接是否可用。

我的问题是如何检查互联网连接不可用?


如果您正在使用 Mac,请按 F8 关闭模拟器上的互联网,然后重试。 - zaphod100.10
不,我正在使用Windows和Genymotion模拟器。 - MilapTank
2个回答

0

尝试关闭WiFi和数据包后再次尝试...希望这可以帮到你。


-2

尝试使用此方法检测您的互联网连接

public static boolean isInternetConnected(Context mContext) {

            try {
                ConnectivityManager connect = null;
                connect = (ConnectivityManager) mContext
                        .getSystemService(Context.CONNECTIVITY_SERVICE);

                if (connect != null) {
                    NetworkInfo resultMobile = connect
                            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

                    NetworkInfo resultWifi = connect
                            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

                    if ((resultMobile != null && resultMobile
                            .isConnectedOrConnecting())
                            || (resultWifi != null && resultWifi
                                    .isConnectedOrConnecting())) {
                        return true;
                    } else {
                        return false;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            return false;
        }

将以下权限添加到您的清单文件中:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

你能看到我的问题吗?我已经使用ConnectivityManager检查了连接,但它没有起作用,这就是为什么我在这里问的原因。而你只检查了我问题中的两种连接类型,而我已经检查了所有类型的连接。 - MilapTank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接