Utilizando Wi-Fi Direct como alternativa “ad hoc” en Android

Utilizando Wi-Fi Direct como alternativa “ad hoc” en Android

wifi direct

Hace unos meses comentábamos el problema de desplegar redes ad hoc en Android. Actualmente el modo ad-hoc está deshabilitado por defecto, por lo que nuestra única opción es modificar nuestra versión oficial de Android para ejecutar comandos del sistema, tal y como explicábamos en el mencionado artículo.

Somos muchos quienes nos hemos quejado a Google de esta grave carencia. Cabe preguntarse: ¿existe alguna forma de utilizar el modo ad hoc sin rootear el dispositivo? La respuesta es bastante ambigua: sí y no.

La solución de Google

Google llegó a la conclusión de que, en efecto, era necesario habilitar alguna forma de ad hoc en los dispositivos Android vía Wi-Fi, mucho más rápido y potente que el anticuado Bluetooth.

Con este problema en mente, decidieron echar mano de un protocolo que en dispositivos como impresoras y cámaras de fotos había dado buenos resultados: WiFi Direct. Desde entonces, todos los smartphones y tablets de Ice Cream Sandwich (4.0.x) en adelante incorporarían Wi-Fi Direct como mecanismo ad-hoc o P2P.

WiFi Direct no es Ad hoc

De acuerdo, Wi-Fi Direct no es ad hoc, pero casi. Vamos a resumir mucho, mucho, cómo funciona Wi-Fi Direct:

En esencia, consiste en la creación de un grupo P2P entre los nodos que desean realizar una conexión ad hoc. Uno de los nodos hace la función de propietario de dicho grupo, que se traduce en convertirlo en un Punto de Acceso como lo es el router de tu casa, pero en versión software (soft AP). Mediante un proceso automatizado y simplificado de negociación (basado en Wi-Fi Protected Setup), se incorporan los restantes pares o clientes permitiendo una conexión P2P entre los nodos y el propietario. Es un proceso tan sencillo como lo es Bluetooth.

Lo cierto es que Wi-Fi Direct está abriendo muchas posibilidades: por ejemplo, una de las principales novedades de Android 4.2 fue la incorporación de Miracast, un nuevo protocolo de emisión de video y audio mediante WiFi Direct.

En el siguiente enlace tenéis un ejemplo práctico y sencillo de cómo usar Wifi Direct para compartir archivos entre dos dispositivos.

Una potente API para Android: el paquete wifi.p2p

protocolo wifi direct

Si eres un desarrollador, te gustará saber que existe una API muy potente que te permite programar muchas aplicaciones pseudo-adhoc utilizando WiFi Direct. Se trata del paquete android.net.wifi.p2p.

Esta API permite descubrir vecinos y conectarnos a cada uno de ellos vía P2P. La clase más importante se llama WifiP2pManager, que permite realizar las operaciones básicas de inicialización, descubrimiento de pares vecinos y conexión.

No pretendo realizar un tutorial sobre esta API (tal vez otro día), pero sí lo explicaremos a vista de pájaro:

  • Antes de realizar cualquier operación P2P, la aplicación necesita una inicialización mediante el método initialize().
  • También necesitamos una instancia de ActionListener, que nos permite recibir los callbacks de las funciones principales de éxito o fallo: onSuccess() y onFailure().
  • Para iniciar un descubrimiento de pares o nodos, se utiliza la función discoverPeers()
  • Una vez tenemos esta lista de nodos, podemos utilizar la función connect() para realizar una conexión P2P a cualquiera de ellos.
  • También podemos crear un grupo de pares con createGroup().

Para que todo esto funcione, necesitamos habilitar los siguientes permisos en el fichero manifiest:

La documentación oficial explica todo esto de forma bastante interesante. También tenéis un ejemplo con Wi-Fi Direct Demo.

¿Wi-Fi Direct sirve para redes MANET y MESH?

A día de hoy Wi-Fi Direct para Android está muy limitado a la hora de establecer redes MANET o MESH, ya que está pensado para operar en grupos pequeños centralizados (topología estrella). La comunicación con los Group Owner de otros grupos P2P es un auténtico reto, y desde el punto de vista de la filosofía MANET y MESH no es muy católico ni eficiente. Este es un tema que dejaremos para otro artículo, aunque si se os ocurren soluciones para aprovechar Wifi Direct en estos escenarios no dudéis en compartirlos.

Previous El nuevo Android 4.4 KitKat ya está entre nosotros
Next Celebra el 28 aniversario de Windows 1.0 con un emulador online

About author

Angel
Angel 163 posts

Creció viendo McGyver y ya de niño tenía muy claro en qué quería convertirse: inventor. Supuso que estudiar Ingeniería de Telecomunicación sería un buen camino para ello. Emprendedor y aventurero, bajo los circuitos y transistores le late un corazón de escritor.

You might also like

Tecnologia & Ciencia 1Comments

La próxima generación

En el mundillo de Internet llevamos unos meses hablando y dándole vueltas a las aplicaciones que nos trae “la nube”. Hablando de cuantas soluciones nos va aportar no tener los

Tecnologia & Ciencia 4 Comments

Cuándo dejar de ver el Mundo como un Ingeniero: quien esté libre de optimizar…

Confucio reunió a sus discípulos y les dijo: “Un optimista ve un vaso medio lleno. Un pesimista ve un vaso medio vacío. Un ingeniero ve un vaso demasiado grande“. Lo

Generales 0 Comments

Google I/O 2014: Software, software y más software

El esperado evento Google I/O 2014 no ha dejado indiferente a nadie. Muchísimas novedades en cuanto a sofware y ninguna en cuanto a hardware, ni Nexus 8 ni sustituto del obsoleto

comic 1Comments

300 ingenieros malempleados y desempleados

Según la encuesta de población activa, en 2012 el paro en el sector de la mecánica, electrónica y otra formación técnica, que engloba muchas ingenierías, fue tan sólo del 17,32%. También

¿Cuál es la mejor distribución Linux para diseño gráfico y multimedia?

La respuesta es ArchLinux. Ea, ya lo he dicho. Pero antes de que os vayáis corriendo como pollos sin cabeza, oíd un viejo refrán: “Aunque la mona se vista de

Tecnologia & Ciencia 0 Comments

Ataque de epilepsia en 3, 2, 1…

Unas veces la tecnología web está al servicio del progreso y del bienestar social. Otras veces nos facilita el día a día, nos ayuda a ser más felices o incluso

Generales 1Comments

¿Por qué los nuevos SoC de Snapdragon llegan tarde a los 14nm?

Actualidad Tecnológica. La empresa estadounidense Qualcomm ha anunciado en el Mobile World Congress 2015 con mucho orgullo el próximo lanzamiento de sus nuevos procesadores de la serie 820 de Snapdragon. Qualcomm espera que marque un

Inteligencia Artificial 12 Comments

Definición de máquina de Turing y ejemplos

¿Qué es una máquina de Turing (MT)? ¿Cual es su cometido? En esta entrada nos introduciremos en el ámbito de la computación, intentando entender una pequeña parte de la misma

Internet 3 Comments

[Administra tu Servidor] ¿Cómo hacer copias periódicas en Linux? Utiliza la shell.

Tanto si eres el administrador de un servidor con Linux o simplemente tienes instalada una de sus distribuciones en tu portátil personal, seguro que te ves en la necesidad de

9 Comments

  1. tabarquino
    Junio 02, 11:29 Reply

    good day friends. I need a developer to make a android based apps direct p2p wifi as published here. you can make me one?

  2. Armando
    Diciembre 16, 23:50 Reply

    Hola!, estamos haciendo un proyecto y queremos aprender sobre esta funcionalidad para nuestra app. aprender completamente de 0.

    • Armando
      Diciembre 16, 23:52 Reply

      a nos apoyas sobre entender mas el tema?

  3. Henry
    Noviembre 11, 03:29 Reply

    Angel, ante todo gracias a la info proporcionada, pero no logro claramente conectar mi Moto G 8GB (sin root) a mi laptop a traves d ad-hoc, ni con connectify, lo que me pregunto es: ¿Por qué si puedo navegar a traves de firefox y chrome pero no logro conectarme a ningun servidor de correo, hotmail, yahoo, myMail ni a las redes sociales, ninguna apk practicamene me funciona????? que debo hacer? por favor toda la info q me puedas dar a henryraco@hotmail.com. GRACIAS

  4. Orlando
    Septiembre 17, 05:22 Reply

    Saludos Angel. Que ha pasado con wifi direct, se puede crear una red ad hoc pura, en configuracion mesh?

  5. Bitacoras.com
    Noviembre 17, 18:34 Reply

    Información Bitacoras.com

    Valora en Bitacoras.com: Hace unos meses comentábamos el problema de desplegar redes ad hoc en Android. Actualmente el modo ad-hoc está deshabilitado por defecto, por lo que nuestra única opción es modificar nuestra versión oficial de Android p…

Leave a Reply