Android 访问网络可用性状态

Android 访问网络可用性状态,android,android-networking,android-internet,Android,Android Networking,Android Internet,我正在开发一个应用程序,我想在其中访问是否有互联网连接。我可以使用访问网络状态 private Boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityMa

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

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

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

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

检查它是否是正常的Internet连接,而不仅仅是您已连接到Internet。您可以通过尝试从站点获取已知地址/资源来实现这一点,例如1x1 PNG图像或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秒),将通过超时异常。 所以你可以用它来检查是否可以上网。

像这样试试

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访问是否可用。

检查正常实现的Internet连接,但如果您想知道服务器是否正在运行,首先需要向服务器发送ping或发送存根请求(例如:发送带任何参数的请求)。如果回答“是”,则您可以与服务器完美配合。

检查正常实现的internet连接,但如果您想知道服务器是否正在运行,则首先需要向服务器发送ping或发送存根请求(例如:发送带任何参数的请求)。如果回答为“是”,则您可以与服务器完美配合。

谢谢您的回答,我们将尝试一下!不客气!记住一件事,chosse Timeout根据您的需要。感谢您的回复,我们将尝试一下!不客气!记住一件事,根据需要选择超时时间。