versiones sandwich puede kitkat jelly honeycomb gingerbread descargar cream caracteristicas bean actualizar android android-4.0-ice-cream-sandwich

android - sandwich - ErrnoException: isConnected falló: EHOSTUNREACH(No hay ruta al host) al cambiar la red wifi mediante ICS



android kitkat (5)

Al usar mi aplicación en ics, después de cambiar mi red wifi de networkA a networkB, todas las solicitudes de imágenes comienzan a regresar con una excepción.

falló con excepción

> 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)

Lo más extraño es que incluso desinstalar la aplicación y reinstalarla no la soluciona, simplemente apaga y enciende el teléfono.

Vi un problema similar aquí http://groups.google.com/group/newsrob/browse_thread/thread/ea2f26d9d1753b79/5800e268eeab399c#5800e268eeab399c . El problema no está ocurriendo en los teléfonos con 4.0.3, solo en los que tienen 4.0.1, y la actualización no parece estar disponible en Europa todavía.


fallado: EHOSTUNREACH (No hay ruta al host)

Así que el enrutamiento no se ha configurado correctamente.

Descubrí que para algunos dispositivos tienes que configurar el campo WifiConfiguration.IpAssignment.DHCP de WifiConfiguration.IpAssignment.DHCP en WifiConfiguration.IpAssignment.DHCP manualmente para que se realice una solicitud DHCP después de cambiar el wifi programáticamente. Esto solo puede hacerse a través de la reflexión, vea esta respuesta cómo codificarlo . Capture todas las excepciones, porque en otros dispositivos el campo ni siquiera existe.


Mientras que cambiar y establecer con un nuevo dispositivo de red puede llevar algo de tiempo. El siguiente código puede ayudarle.

ConnectivityManager connMngr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); try { return connMngr.getActiveNetworkInfo().isConnectedOrConnecting(); } catch (NullPointerException npe) { return false; }


Parece que tienes un problema con el protocolo TCP. Tal vez en caso de debilidad WiFi o señal 3G. Utilice try / catch para ello.


Tal vez esté tomando un tiempo para que el cambio se realice por alguna razón? Puede verificar si hay una conexión de red activa antes de realizar la solicitud:

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(); }


Tuve el mismo problema así es como lo resolví.

  1. Desactiva tus firewalls
  2. Vaya a la carpeta del servidor (en mi caso, estaba usando Node.js) el archivo WWW y escuche en el puerto proporcionado, en todas las interfaces de red.

    server.listen (puerto, ''10 .8.75.204 '');

    server.on(''error'', onError); server.on(''listening'', onListening);

  3. Asegúrese de que la dirección IP sea la IP de su red local, en viudas, esto se puede obtener escribiendo ipconfig en el símbolo del sistema.

  4. reinicie el servidor e intente conectarse de nuevo.