public static boolean compruebaConexion(Context context)
{
boolean connected = false;
ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// Recupera todas las redes (tanto móviles como wifi)
NetworkInfo[] redes = connec.getAllNetworkInfo();
for (int i = 0; i < redes.length; i++) {
// Si alguna red tiene conexión, se devuelve true
if (redes[i].getState() == NetworkInfo.State.CONNECTED) {
connected = true;
}
}
return connected;
}
您可以使用它来测试:
检查网络是否启用:
要检查是否有互联网访问:
在权限中添加(在 Manifest.permission 中)您需要的内容,例如,如果您同时使用以下内容:
Manifest.permission(英文链接):
android.permission.ACCESS_NETWORK_STATE
android.permission.INTERNET
2020 年 1 月更新:
从 Android 10 开始, NetWorkInfo类及其方法的使用已过时,现在必须使用类
ConectivityManager
和方法getNetworkCapabilities()
或类NetworkCapabilities
执行一个进程来执行一个 ping 是不行的,因为我们有NetWorkInfo类和它的方法!
例子:
添加权限非常重要,以确定网络的状态:
并具有连接性:
另一方面,如果是WiFi ,您可以确定网络的类型:
或者如果它是Mobile:
此解决方案允许您检测您的 Android 设备是否已连接到 Internet,验证是否存在 Wi-Fi 连接或移动网络(例如 3G 或 4G)。
请记住在您的清单中添加相应的权限以执行此代码:
希望有帮助,加油。
我自己的解决方案,检测是否有互联网连接:总结函数
isOnline
检查是否存在任何现有连接(如果已连接),然后检查它是否可以查询 google.es我使用以下方法,希望对您有用: