检查 Android 是否有活动的互联网连接

2023-12-08

我正在尝试在我的应用程序中编写一个部分来区分活动 Wifi 连接和实际的互联网连接。使用连接管理器查找是否有活动的 Wifi 连接非常简单,但是每次我尝试测试在 Wifi 连接但没有互联网连接时是否可以连接到网站时,我都会陷入无限循环。
我尝试 ping google 但结果是一样的:

Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
int returnVal = 5;
try {
    returnVal = p1.waitFor();
} catch (InterruptedException e) {
    e.printStackTrace();
}
boolean reachable = (returnVal==0);
return reachable;

我也尝试过这段代码:

if (InetAddress.getByName("www.xy.com").isReachable(timeout))
{    }
else
{    }

但我无法让 isReachable 工作。


它确实对我有用:

要验证网络可用性:

private Boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}

要验证互联网访问:

public Boolean isOnline() {
    try {
        Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
        int returnVal = p1.waitFor();
        boolean reachable = (returnVal==0);
        return reachable;
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 Android 是否有活动的互联网连接 的相关文章

随机推荐