在Android和Raspberry Pi 3 Linux之间建立Wifi-Direct连接

Kel*_*les 9 android p2p raspberry-pi wifi-direct raspbian

我想使用Wifi-Direct连接两台设备.一个是RaspBerry PI 3(与Raspbian Jessie合作),另一个是Android智能手机.Raspberry作为服务器,Android作为客户端.

我决定在Raspbian中使用wpa_supplicant和Android的WifiDirect示例应用程序:

https://developer.android.com/guide/topics/connectivity/wifip2p.html

我的wpa_supplicant.conf包含:

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
Run Code Online (Sandbox Code Playgroud)

我正在按照以下步骤操作:

1)在树莓派中:

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
Run Code Online (Sandbox Code Playgroud)

2)然后在Android应用程序中,我可以看到树莓作为同行,但我得到连接失败.我尝试使用设置应用程序(Wifi =>高级=> Wifi Direct),我也可以看到树莓作为同行,但不同之处在于,当我尝试建立连接时,应用程序请求我输入PIN码,我能够如果我在树莓中引入p2p_pin返回的引脚,则建立连接.

我试图了解这种行为:

为什么要求我提供个人识别码?这就是为什么我无法通过WifiDirect示例应用程序建立连接的原因?我在这里遗漏了什么?

谢谢.

小智 2

您所在的地方:

wpa_cli -ip2p-wlan0-0 wps_pbc
Run Code Online (Sandbox Code Playgroud)

使用:

sudo wpa_cli -ip2p-wlan0-0 wps_pin any 12345670
Run Code Online (Sandbox Code Playgroud)