smart - Android Wifi Direct: evita la aceptación del usuario cuando se conecta a un compañero conocido
wifi direct huawei (5)
Mientras se conecta a un par utilizando WiFi Direct, se requiere el permiso del usuario. Sé que la conexión no se puede hacer sin que el usuario nunca dé el permiso y hay una solicitud de funciones para este tipo de funcionalidad: https://code.google.com/p/android/issues/detail?id=30880
Pero no necesito esta función, pedir permiso en la primera conexión está bien (también es más seguro). ¿Existe algún método que permita solicitar el permiso por primera vez? Y cuando intente conectarse con el mismo compañero más tarde, no se requiere el permiso.
A partir de la especificación P2P podemos encontrar algo llamado "grupo P2P persistente" que está destinado a restablecer un grupo sin intervención del usuario.
En un grupo P2P persistente, el propietario del grupo almacena las credenciales del grupo para que el grupo pueda restablecerse en el futuro mediante la solicitud de cualquier miembro del grupo sin la necesidad de la intervención del usuario.
Dicho grupo se puede formar especificando persistente mientras se conecta usando la línea de comandos (vea el P2P de wpa_supplicant
y busque el comando p2p_connect
https://android.googlesource.com/platform/external/wpa_supplicant_8/+/ics-plus-aosp/wpa_supplicant/README-P2P ). Pero no sé si la opción está disponible con los dispositivos actuales.
Editar: vea la respuesta a la pregunta ¿Puedo cambiar el propietario del grupo en un grupo persistente en Wi-Fi Direct?
Desde que trabajé con Wi-Fi Direct en Ubuntu, usé wpa_cli
(que viene junto con wpa_supplicant
) para crear un grupo persistente como se especifica en el archivo p2p_readme
.
Es posible a través del método de reflexión.
Estoy usando dos HTC One V, así como un HTC One X +. He estado ejecutando el WifiDirectDemo dado por Android. Aparte de encender Wifi Direct, no se requiere ninguna otra configuración. Simplemente presiono un botón de búsqueda en la aplicación y se enumeran los compañeros.
Al principio pensé que necesitaba el permiso de otro dispositivo, como lo describió, y necesito volver a habilitarlo cada vez que instalé la aplicación en mis dispositivos. Pero esto fue antes de que notara el botón de búsqueda en la aplicación, y me di cuenta de que no era necesario.
¿Podrías haber cometido el mismo error que yo?
Lamentablemente, no en este momento. Quizás en el futuro, o si escribes tu propia ROM.
Lo más cercano a tener las funciones de Wi-Fi Direct sin que me las haya pedido es usar la detección de servicios combinada con el modo heredado, es decir, cuando se supone que la conexión se realiza, no usa WifiP2pManager.connect () sino WifiManager.enableNetwork ( ) en su lugar.
Soy el autor de una pila P2P muy simple que automatiza toda la magia, puedes ver un ejemplo en https://github.com/croconaut/wifon-mini para ver qué tan bien / mal funciona (más alguna documentación) .