首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中查看网络内的互联网连通性(通过HOTSPOT使用其他设备的互联网)

如何在Android中查看网络内的互联网连通性(通过HOTSPOT使用其他设备的互联网)
EN

Stack Overflow用户
提问于 2014-09-26 17:12:42
回答 2查看 770关注 0票数 18

我有一个要求,当我连接到网络时,我想检查是否有任何互联网连接。

例如,我有设备A和设备B。

设备A和设备B连接hotspot。在设备A中,我把它和Wi-Fi连接在一起,在设备B中-一个设备连接到hotspot。

现在,如果我从设备B(而不是系留热点)移除互联网,那么在设备A中,它仍然显示-已连接Wi-Fi,但没有互联网连接。

像ConnectivityManager这样的类有助于确定设备是否连接到网络,而不是互联网连接。

我想跟踪这个问题。有什么方法可以做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2014-09-26 17:37:10

这可能是一个荒谬的解决方案,但我认为它也可能是真正的解决方案:

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        try {
            URL url = new URL("http://www.google.com");
            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
            urlc.setConnectTimeout(3000);
            urlc.connect();
            if (urlc.getResponseCode() == HttpURLConnection.HTTP_OK) {
                return new Boolean(true);
            }
        } catch (MalformedURLException mue) {
            // TODO Auto-generated catch block
            mue.printStackTrace();
        } catch (IOException ie) {
            // TODO Auto-generated catch block
            ie.printStackTrace();
        }
    }
    return false;
}
票数 4
EN

Stack Overflow用户

发布于 2014-09-26 17:17:06

尝试以下功能来检查您的互联网连接:

    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" />
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26056015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档