Wenn ich meine App auf ics verwende, wechselt mein WLAN-Netzwerk von Netzwerk A zu Netzwerk B, und alle Anforderungen für Bilder werden mit einer Ausnahme angezeigt.
mit Ausnahme fehlgeschlagen
> org.Apache.http.conn.HttpHostConnectException: Connection to
> https://m1.testapp.com refused at
> org.Apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.Java:183)
> at
> org.Apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.Java:164)
> at
> org.Apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.Java:119)
> at
> org.Apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.Java:360)
> at
> org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:555)
> at
> org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:487)
> at
> org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:465)
> at
> com.testApp.Android.ws.PooledRequestProcessor$Runner.run(PooledRequestProcessor.Java:298)
> at
> Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1076)
> at
> Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:569)
> at Java.lang.Thread.run(Thread.Java:856) Caused by:
> Java.net.ConnectException: failed to connect to /109.233.153.38 (port
> 443) after 20000ms: isConnected failed: EHOSTUNREACH (No route to
> Host) at
> org.Apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.Java:181)
> ... 10 more Caused by: Java.net.SocketException: failed to connect
> to /109.233.153.38 (port 443) after 20000ms: isConnected failed:
> EHOSTUNREACH (No route to Host) at
> libcore.io.IoBridge.isConnected(IoBridge.Java:220) at
> libcore.io.IoBridge.connectErrno(IoBridge.Java:152) at
> libcore.io.IoBridge.connect(IoBridge.Java:112) at
> Java.net.PlainSocketImpl.connect(PlainSocketImpl.Java:192) at
> Java.net.PlainSocketImpl.connect(PlainSocketImpl.Java:459) at
> Java.net.Socket.connect(Socket.Java:842) at
> org.Apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.Java:119)
> at
> org.Apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.Java:144)
> ... 10 more Caused by: libcore.io.ErrnoException: isConnected
> failed: EHOSTUNREACH (No route to Host) at
> libcore.io.IoBridge.isConnected(IoBridge.Java:201)
Das Seltsamste ist, dass selbst das Deinstallieren der App und die Neuinstallation sie nicht beheben, sondern nur das Telefon aus- und einschalten.
Ich habe hier ein ähnliches Problem gesehen http://groups.google.com/group/newsrob/browse_thread/thread/ea2f26d9d1753b79/5800e268eeab399c#5800e268eeab399c . Das Problem tritt bei Handys mit 4.0.3 nicht auf, nur bei denen mit 4.0.1, und das Update scheint in Europa noch nicht verfügbar zu sein.
Vielleicht dauert es eine Weile, bis die Umstellung aus irgendeinem Grund erfolgt ist? Sie können prüfen, ob eine aktive Netzwerkverbindung besteht, bevor Sie die Anforderung stellen:
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected() && networkInfo.isAvailable())
{
// DO WHAT YOU NEED TO DO ON THE NETWORK
}
else
{
// Prompt USER THAT NETWORK IS DISCONNECTED
Toast.makeText(this, "There is no active network connection!", 5000).show();
}
Das Wechseln und Einrichten mit einem neuen Netzwerkgerät kann einige Zeit dauern. Der folgende Code kann Ihnen helfen.
ConnectivityManager connMngr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
return connMngr.getActiveNetworkInfo().isConnectedOrConnecting();
}
catch (NullPointerException npe) {
return false;
}
Sieht so aus, als hätten Sie ein Problem mit dem Protokoll TCP. Es kann sein, dass das WLAN oder 3G-Signal schwach ist. Verwenden Sie try/catch dafür.
Ich hatte das gleiche Problem, wie ich es gelöst habe.
gehen Sie in Ihrem Serverordner (in meinem Fall habe ich Node.js verwendet) der WWW-Datei zu und lauschen Sie den angegebenen Port an allen Netzwerkschnittstellen.
server.listen (Port, '10 .8.75.204 ');
server.on('error', onError);
server.on('listening', onListening);
Stellen Sie sicher, dass es sich bei der IP-Adresse um Ihre lokale Netzwerk-IP-Adresse handelt. Bei Witwen erhalten Sie diese durch Eingabe von ipconfig on der Eingabeaufforderung.
starten Sie den Server neu und versuchen Sie erneut, eine Verbindung herzustellen.
fehlgeschlagen: EHOSTUNREACH (Keine Route zum Host)
Das Routing wurde also nicht korrekt eingerichtet.
Ich habe festgestellt, dass Sie für einige Geräte das Feld WifiConfiguration
name ipAssignment
manuell auf WifiConfiguration.IpAssignment.DHCP
setzen müssen, damit eine DHCP-Anforderung nach dem programmgesteuerten Ändern des WLANs ausgeführt wird. Dies ist nur über Reflection möglich. siehe Antwort, wie man es codiert . Alle Ausnahmen abfangen, da das Feld auf anderen Geräten nicht einmal existiert.