java.net.UnknownHostException:无法解析主机;www.google.com“;
我试图检测是否有互联网连接,是否可以访问网站。我有一个在接收时运行以下方法的广播接收器:java.net.UnknownHostException:无法解析主机;www.google.com“;,java,android,connectivity,httpconnection,unknown-host,Java,Android,Connectivity,Httpconnection,Unknown Host,我试图检测是否有互联网连接,是否可以访问网站。我有一个在接收时运行以下方法的广播接收器: public boolean hasInternetNow() { Thread checkinternet = new Thread(new Runnable() { @Override public void run() { try { tr
public boolean hasInternetNow() {
Thread checkinternet = new Thread(new Runnable() {
@Override
public void run() {
try {
try {
ConnectivityManager cm = (ConnectivityManager) myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo().isConnectedOrConnecting()) {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url .openConnection();
urlc.setRequestProperty("User-Agent", "test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
setinternetDetected(true);
} else {
setinternetDetected(false);
}
}
} catch (IOException e) {
e.printStackTrace();
setinternetDetected(false);
} catch (NullPointerException e){
e.printStackTrace();
setinternetDetected(false);
}
} catch (Exception e) {
e.getLocalizedMessage();
setinternetDetected(false);
}
}
});
checkinternet.start();
return internetDetected();
}
当连接到Wifi且通过互联网应用程序可以访问谷歌时,我发现以下错误:
10-15 07:50:46.656: W/System.err(24203): java.net.UnknownHostException: Unable to resolve host "www.google.com": No address associated with hostname
10-15 07:50:46.656: W/System.err(24203): at java.net.InetAddress.lookupHostByName(InetAddress.java:426)
10-15 07:50:46.656: W/System.err(24203): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
10-15 07:50:46.656: W/System.err(24203): at java.net.InetAddress.getAllByName(InetAddress.java:220)
10-15 07:50:46.656: W/System.err(24203): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
10-15 07:50:46.656: W/System.err(24203): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
10-15 07:50:46.656: W/System.err(24203): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
10-15 07:50:46.656: W/System.err(24203): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
10-15 07:50:46.656: W/System.err(24203): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
10-15 07:50:46.666: W/System.err(24203): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
10-15 07:50:46.666: W/System.err(24203): at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
10-15 07:50:46.666: W/System.err(24203): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
10-15 07:50:46.666: W/System.err(24203): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
10-15 07:50:46.666: W/System.err(24203): at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
10-15 07:50:46.666: W/System.err(24203): at com.appiclife.ezcallcallingcardvoiptool.DeviceData$1.run(DeviceData.java:110)
10-15 07:50:46.666: W/System.err(24203): at java.lang.Thread.run(Thread.java:856)
10-15 07:50:46.666: W/System.err(24203): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
10-15 07:50:46.666: W/System.err(24203): at libcore.io.Posix.getaddrinfo(Native Method)
10-15 07:50:46.666: W/System.err(24203): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
10-15 07:50:46.666: W/System.err(24203): at java.net.InetAddress.lookupHostByName(InetAddress.java:411)
10-15 07:50:46.656:W/System.err(24203):java.net.UnknownHostException:无法解析主机“www.google.com”:没有与主机名关联的地址
10-15 07:50:46.656:W/System.err(24203):位于java.net.InetAddress.lookupHostByName(InetAddress.java:426)
10-15 07:50:46.656:W/System.err(24203):位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
10-15 07:50:46.656:W/System.err(24203):位于java.net.InetAddress.getAllByName(InetAddress.java:220)
10-15 07:50:46.656:W/System.err(24203):位于libcore.net.http.HttpConnection.(HttpConnection.java:71)
10-15 07:50:46.656:W/System.err(24203):位于libcore.net.http.HttpConnection.(HttpConnection.java:50)
10-15 07:50:46.656:W/System.err(24203):位于libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
10-15 07:50:46.656:W/System.err(24203):位于libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
10-15 07:50:46.656:W/System.err(24203):位于libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
10-15 07:50:46.666:W/System.err(24203):位于libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
10-15 07:50:46.666:W/System.err(24203):位于libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
10-15 07:50:46.666:W/System.err(24203):位于libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
10-15 07:50:46.666:W/System.err(24203):位于libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
10-15 07:50:46.666:W/System.err(24203):位于libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
10-15 07:50:46.666:W/System.err(24203):在com.appiclife.ezcallingcardvoiptool.DeviceData$1.run(DeviceData.java:110)
10-15 07:50:46.666:W/System.err(24203):位于java.lang.Thread.run(Thread.java:856)
10-15 07:50:46.666:W/System.err(24203):原因:libcore.io.GaiException:getaddrinfo失败:EAI_NODATA(没有与主机名关联的地址)
10-15 07:50:46.666:W/System.err(24203):位于libcore.io.Posix.getaddrinfo(本机方法)
10-15 07:50:46.666:W/System.err(24203):在libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
10-15 07:50:46.666:W/System.err(24203):位于java.net.InetAddress.lookupHostByName(InetAddress.java:411)
我在这里遗漏了什么?此方法也很容易做到这一点:
public boolean isInternetAvailable() {
try {
InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name
if (ipAddr.equals("")) {
return false;
} else {
return true;
}
} catch (Exception e) {
return false;
}
}
您是否已将internet权限添加到您的清单中?Argh:(-我确实忘记了,但仍然存在相同的问题。感谢您指出这一点。。。