I want to connect two devices using Wifi-Direct. One is a RaspBerry PI 3 (with Raspbian Jessie), the other is an Android smartphone. Raspberry as server and Android as client.
I decided to use wpa_supplicant in Raspbian and the WifiDirect example app for Android:
https://developer.android.com/guide/topics/connectivity/wifip2p.html
My wpa_supplicant.conf contains:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
device_name=raspberry
device_type=1-0050F204-1
driver_param=use_p2p_group_interface=1
p2p_go_intent=1
p2p_go_ht40=1
I am following this steps:
1) In the raspberry pi:
sudo wpa_supplicant -B -iwlan0 -Dnl80211 -c/etc/wpa_supplicant.conf
sudo wpa_cli -iwlan0 p2p_group_add
ifconfig p2p-wlan0-0 192.168.1.2
wpa_cli -ip2p-wlan0-0 wps_pbc
2) Then in the Android app, I can see the raspberry as a peer but I get a connection failure. I try with the settings app (Wifi => Advanced => Wifi Direct) and I can see the raspberry as a peer too but the diference is that when I try to make the connection, the application request me a PIN code and I am able to make the connection if I introduce the pin returned by p2p_pin any in the raspberry.
Im trying to understand this behavior:
Why is requesting me a PIN? This is the reason why I am not able to make the connection through the WifiDirect example app? Im missing something here?
Thank you.
Where you have:
wpa_cli -ip2p-wlan0-0 wps_pbc
use:
sudo wpa_cli -ip2p-wlan0-0 wps_pin any 12345670