如果服务器关闭或没有互联网连接,将抛出UnknownHostException。如何确定是否由于服务器关闭或没有互联网连接而抛出了UnknownHostException

原因是我需要通知用户有关错误的原因。而且我必须显示类似“抱歉。该服务当前不可用。请稍后再试”或“您没有互联网连接”。

最佳答案

您可以检查网络状态以确定互联网连接是否可用(虽然不是100%可靠):

ConnectivityManager conMgr =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

if ( conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
    ||  conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING  ) {
...
}

编辑:

恕我直言,无法确保告诉手机互联网连接已断开。
但是,除了检查网络状态之外,您还可以进行简单的测试,例如从Internet上的网站下载一小页(选择一些可靠的服务器)。

两次测试的结果应该在99%的时间内都是准确的。

10-07 19:20