如何在Android上检查WiFi连接是否有互联网。

5

我正在尝试找到一种方法来检查我的当前WiFi连接是否有互联网。

如果我也打开了移动数据,则使用ping或尝试访问网站的常规选项将无法工作,因为它会由于移动数据而返回true。


3
请先检查设备是否连接到 Wi-Fi 或移动网络,然后再进行 Ping 测试。 - iamanbansal
问题在于它可以连接到两个地方。 - theblitz
2个回答

0
这是对我有效的代码。注意:如果您的应用程序中使用了蜂窝数据,则可以将其添加到最后一行。
    private static boolean isNetworkAvailable(@NonNull Context context) {

    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    Network nw = connectivityManager.getActiveNetwork();
    if (nw == null) return false;
    NetworkCapabilities actNw = connectivityManager.getNetworkCapabilities(nw);
    return actNw != null && (actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET));
}

0

什么是 connection API? - IgorGanapolsky

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