如何检查 Android 设备是否已连接到 Internet 连接?目前,我正在使用以下代码:
ConnectivityManager connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
boolean isConnectedToNetwork = (networkInfo != null && networkInfo.isConnected());
但是,上面代码的问题在于它只检查设备是否连接到网络。它不检查互联网连接是否可用。例如,如果设备连接到没有互联网访问权限的路由器,它仍然会返回 true,isConnectedToNetwork
因为从技术上讲,您是通过路由器连接到网络的。只是路由器没有互联网连接。
我看到的一个建议是尝试连接到一个停机几率非常低的网站。这方面的一个例子是 www.google.com。但是,我认为这不是正确的解决方案。首先,如果用户使用 GPRS 并按每 KB 为他的互联网使用收费,那么他将为此承担额外的费用。其次,我认为使用这样的第三方网站是不道德的。这真的是检查互联网连接的唯一方法,还是您可以提出不同的解决方案?未经他们同意就这样连接到谷歌真的可以吗?如何检查设备是否有互联网连接?