首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android应用程序中检测互联网连接?

在Android应用程序中检测互联网连接?
EN

Stack Overflow用户
提问于 2012-12-17 13:37:08
回答 4查看 347关注 0票数 1

我有以下方法,它将检查设备中的互联网连接:

代码语言:javascript
运行
复制
public static boolean checkInternetConnection(Context context) {
    ConnectivityManager connectivityManager = 
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

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

}

但过了一段时间后,我发现这个方法只检查网络连通性;就像设备连接到路由器,路由器是开着的,但没有互联网可用,这个方法返回true。

那么如何知道有没有真正的互联网呢?

EN

回答 4

Stack Overflow用户

发布于 2012-12-17 13:39:36

那么什么是“真正的互联网”呢?能够在任何给定时间连接到Internet上的任何可能的主机?有点难测试,不是吗?试着连接一个知名的服务器(Google,NASA,你们国家最大的提供商主页),如果它工作了,你可能就有了“真正的互联网”。

票数 4
EN

Stack Overflow用户

发布于 2012-12-17 13:43:56

我为你看到的唯一方法是尝试连接到像谷歌这样的网站,如果你得到了结果,那么你可以确定它,否则就没有互联网活动。

票数 1
EN

Stack Overflow用户

发布于 2012-12-17 13:39:16

尝试此函数...

代码语言:javascript
运行
复制
public static Boolean checknetwork(Context mContext) 
    {

        NetworkInfo info = ((ConnectivityManager) mContext
                .getSystemService(Context.CONNECTIVITY_SERVICE))
                .getActiveNetworkInfo();
        if (info == null || !info.isConnected()) 
        {

            return false;
        }
        if (info.isRoaming()) 
        {
            // here is the roaming option you can change it if you want to
            // disable internet while roaming, just return false
            return true;
        }

        return true;

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13908826

复制
相关文章

相似问题

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