studio multipeer 2p2 android p2p

multipeer - Autenticación automática para Android WiFi Direct



wifi 2p2 (2)

En Android ICS, se proporciona la API inalámbrica P2P (WiFi Direct).

Intenté desarrollar una aplicación que pueda conectar 2 teléfonos a través de Wireless P2P automáticamente si la dirección MAC coincide.

Desde la documentación del SDK, tengo que seguir los siguientes pasos:

  1. Encienda WiFi directamente desde la configuración.
  2. Inicializa la conexión P2P. - inicializar ()
  3. Descubre Peer. - descubrirPeers ()
  4. Ver si la dirección MAC coincide.
  5. Conectar con el par descubierto. - conectar ()

Una vez que se llama a la API connect (), el teléfono Farside mostrará un diálogo de autenticación de conexión. (Dependiendo de WifiP2pConfig)

¿Hay alguna forma de conectarse automáticamente, sin que Farside muestre el cuadro de diálogo?


Parece que la automatización de los diálogos de autenticación no es posible, y esto también hace que el enrutamiento p2p sea imposible. En este momento, la clase WpsInfo (que se usa en la clase WifiP2pConfig que se pasa a la función connect () de WifiP2pManager durante la conexión entre pares) solo muestra los cuadros de diálogo de autenticación de cuatro formas: PANTALLA / TECLADO / ETIQUETA / ETIQUETA / PBC. Creo que PBC (push button config) es el valor predeterminado y es a lo que te refieres. Las otras tres opciones requieren que el usuario ingrese un tipo de pin, lo que las hace aún más inutilizables para las conexiones automatizadas. Tal vez si tuviéramos que encontrar el tipo de esta clase de diálogo de autenticación, podríamos automatizar el clic del botón "Aceptar".

Me gustaría que se agregara una nueva opción que diera a la aplicación la capacidad de autenticar una conexión, en lugar del usuario. Esta autenticación basada en el usuario parece haber sido transferida desde la API de Bluetooth, y limita severamente la utilidad de wifi directo. Tal vez la gente de google podría ayudarnos?


Mientras tanto, la situación ha cambiado. Puede crear una conexión wifi directa de forma totalmente automática utilizando creategroup () del WifiP2pManager y busque la contraseña y el SSID generados aleatoriamente con onGroupInfoAvailable () , consulte esta descripción con el código de ejemplo .