He escrito una aplicación para iniciar mi servidor en casa de forma remota. La aplicación funciona sin problemas en el emulador y también en mi teléfono inteligente (HTC desire, Android 2.2) cuando WiFi está habilitado. Sin embargo, no funciona cuando WiFi está deshabilitado.Programación de socket Android sin conexión WIFi
Antes de reiniciar, primero compruebo si ya se está ejecutando. Para hacer esto, uso conectores y primero me conecto a una dirección dyndns. Después de eso trato de conectarme a mi IP-Box donde puedo encender mi computadora enviando comandos a través de un socket.
Cuando falla la conexión a ese socket, sé que el servidor no se está ejecutando.
El código en cuestión es:
socket = new Socket();
socket.connect(new InetSocketAddress(serverName, port), 10000);
status = socket.isConnected() == true;
socket.close();
Si hay una excepción (SocketException) Sé que el servidor no se está ejecutando. Este enfoque funciona perfectamente cuando he activado WiFi. Sin embargo, si WiFi no está encendido, la conexión siempre dice que está bien, incluso si no pudo establecer una conexión, ya que el servidor no está disponible.
¿Hay alguna forma de comprobar si la conexión está realmente establecida, incluso si WiFi está deshabilitada?
¡Todas las sugerencias son bienvenidas!
Gracias,
Rudi
¿Cómo sabes que la conexión realmente falló? Incluso si el WiFi está desactivado, una conexión aún puede ocurrir a través de la red de datos móviles. Consulte esto para asegurarse de que la red de datos móviles esté deshabilitada: http://newbiehelper.blogspot.com/2011/07/disabling-mobile-data-network-in.html – Theo
Como el servidor que intento iniciar no se está ejecutando es imposible establecer una conexión. Cuando ejecuto el programa cuando wifi está activado, la llamada a socket.connect() falla como excepción. Debo añadir que acabo de encontrar una pregunta muy similar sobre stackoverflow, desafortunadamente sin respuesta. Básicamente, la otra pregunta se refiere a problemas en el modo 3G, así que obviamente no estoy solo para enfrentar este problema. –
Ok, entonces funciona con WiFi activado, no funciona con Wifi apagado, y esto sucede tanto en el emulador como en el teléfono real. – Theo