小编for*_*ama的帖子

通过Wifi Direct(p2p)服务将Raspberry与Android连接

我正在尝试使用OS jessie 8连接一个带有覆盆子的Android应用程序.

如果覆盆子附近只有一个安卓设备,我可以手动连接.但是如果有多个Android设备可用,我无法识别覆盆子必须连接的设备.为了解决这个问题,我试图使用WifiP2P服务.

我正在使用类似这样的配置.

p2p_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
driver_param=p2p_device=1
update_config=1
device_name=Pi
device_type=1-0050F204-1
p2p_go_intent=1
p2p_go_ht40=1
Run Code Online (Sandbox Code Playgroud)

配置wlan接口:

sudo wpa_supplicant -B -dd -iwlan0 -Dnl80211 -c/etc/wpa_supplicant/p2p_supplicant.conf
Run Code Online (Sandbox Code Playgroud)

我使用wpa_cli v2.3手动连接到Android设备.但我无法获得有关服务的任何信息(即服务名称或任何服务相关信息),我只收到以下信息:

>p2p_find
<3>P2P-DEVICE-FOUND 8a:79:7e:12:0f:22 p2p_dev_addr=8a:79:7e:12:0f:22 pri_dev_type=10-0050F204-5 name='Moto G (4)' config_methods=0x188 dev_capab=0x25 group_capab=0x0
>p2p_peers
8a:79:7e:12:0f:22
>p2p_serv_disc_req 00:00:00:00:00:00 02000001
P2P-SERV-DISC-RESP 8a:79:7e:12:0f:22 82 81000101002436383539646564652d383537342d353961622d393333322d313233343536373839303132095f70726573656e6365c00c0010011562756464796e616d653d4a6f686e20446f65363234116e616d653d5f766963696e69747961707011617661696c61626c653d76697369626c650f6c697374656e706f72743d363736373900010100095f70726573656e6365c00c000c012436383539646564652d383537342d353961622d393333322d313233343536373839303132c027
Run Code Online (Sandbox Code Playgroud)

文档中我知道事件P2P-SERV-DISC-RESP应该具有以下格式:

P2P-SERV-DISC-RESP:指示P2P服务发现响应的接收.事件前缀后面包含以下参数:源地址,服务更新指示符,服务响应TLV作为hexdump.

但是,我无法解码tlv的响应.我尝试使用在线解码器,但他们也没有工作.

我如何解码这个tlv的响应?或者,如果我不能,我怎么能识别Android设备?

android raspberry-pi wifi-direct wifip2p

5
推荐指数
1
解决办法
1567
查看次数

标签 统计

android ×1

raspberry-pi ×1

wifi-direct ×1

wifip2p ×1