我认为这取决于您如何使用wpa_cli建立连接。您没有提到发出的命令,但我认为您正在使用以下命令:
wpa_cli -i wlan0 list_networks # list all configured networks; in you example, you appeared to have just defined network n. 0
wpa_cli -i wlan0 select_network 0
该select_network 0
命令不使用 P2P,它只是将 Raspberry Pi 连接到网络配置文件 0 中定义的接入点。
或者,您可能已经使用例如以下命令创建了第二个网络:
wpa_cli -i wlan0 add_network # this returns the new network profile number; let us consider that 1 is returned
wpa_cli -i wlan0 set_network 1 ssid \"MYSSID\"
wpa_cli -i wlan0 set_network 1 psk \"passphrase\"
wpa_cli -i wlan0 enable_network 1 # alternatively to these commands, you might have added a new network profile by editing wpa_supplicant.conf
wpa_cli -i wlan0 list_networks # in this example, we added network 1
wpa_cli -i wlan0 save_config # optional command to save the newly defined network profile 1 into wpa_supplicant.conf
wpa_cli -i wlan0 select_network 1 # this leaves network 0 and connects to network 1
这些命令再次不使用 P2P,只是将 Raspberry Pi 的连接从网络配置文件 0 中定义的接入点切换到配置文件 1 中定义的其他 AP。
Wi-Fi Direct 使用不同的wpa_cli命令并允许兼容的设备形成 ad-hoc 通信组,而不会中断传统的基于接入点的 Wi-Fi 通信。
您应该更改device_name=RPi_3
为device_name=DIRECT-RPi_3
.
然后,您可以使用wpa_cli -i p2p-dev-wlan0 p2p_connect <addr> <8-digit password> display
与 Android 设备协商组。或者,您可以定义自治组或持久组。
组协商模式示例:
wpa_cli -i p2p-dev-wlan0
set config_methods keypad
p2p_find
p2p_connect <addr> <8-digit password> display
持久组模式示例(假设p2p_group_add创建组p2p-wlan0-0):
wpa_cli -i p2p-dev-wlan0
set config_methods keypad
set_network 0 mode 3
set_network 0 disabled 2
p2p_group_add persistent=0
interface p2p-wlan0-0
使用 Android 设备的 Wi-Fi Direct 接口,选择 DIRECT-RPi_3。通过 Android 智能手机的键盘面板输入 PIN 00000000 进行注册。
interface p2p-wlan0-0
wps_pin any 00000000
检查将带有 Wi-Fi Direct 的 Android 智能手机连接到 Raspberry Pi以了解更多信息。