我正在尝试找到一种方法来检查我的当前WiFi连接是否有互联网。
如果我也打开了移动数据,则使用ping或尝试访问网站的常规选项将无法工作,因为它会由于移动数据而返回true。
我正在尝试找到一种方法来检查我的当前WiFi连接是否有互联网。
如果我也打开了移动数据,则使用ping或尝试访问网站的常规选项将无法工作,因为它会由于移动数据而返回true。
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));
}
检查hasTransport(来自NetworkCapabilities)
您可以使用值TRANSPORT_WIFI
来测试WIFI连接
connection.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
我还找到了一些代码片段,希望它们能对你有所帮助
connection
API? - IgorGanapolsky