1

我正在开发一个应用程序,我想在其中访问是否有互联网连接。我可以使用访问网络状态

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

但这只是返回手机是否连接到互联网。我想知道连接后是否有互联网可用。比如,可能是服务器已关闭或互联网不可用。请让我知道如何做到这一点!

4

3 回答 3

2

检查互联网连接正常实施,但如果您想知道您的服务器是否正在运行,首先您需要向您的服务器发送 ping 或发送存根请求(例如:发送带有任何参数的请求)。如果有响应,那么您可以完美地使用您的服务器。

于 2013-04-19T07:21:54.727 回答
2

检查它是否是有效的 Internet 连接,而不仅仅是您已连接到 Internet。您可以通过尝试从您的站点获取已知地址/资源来做到这一点,例如 1x1 PNG 图像或 1 字节文本文件。它还将回答您有关您的服务器状态的信息。:)

于 2013-04-19T07:00:58.733 回答
1

像这样试试

URL url = new URL("Your URL");
URLConnection conexion = url.openConnection();
conexion.setConnectTimeout(10000); // Don't forget to put a time limit
conexion.connect();

超时后(上述示例为 10 秒),它将通过超时异常。因此,您可以使用它来检查 Internet 访问是否可用。

于 2013-04-19T07:08:27.560 回答