所以,我有两个设备A和B,都有android 4.0.3。
首先,从设备A,我发送文件到B.这里没有错,B 收到文件。
然后A断开与B.
现在,我从设备B尝试将文件发送到A.
但是接收文件的设备是B,而不是A.
要修复,我需要在两台设备上关闭......
此外,有时当我点击断开连接并尝试 再次连接,连接失败,我必须禁用和 启用wifi直接...
有其他人遇到过这种情况吗?
是因为新技术尚未成熟或未成熟 我的build / driver / etc或者这个demoapp有问题 不支持双向共享。 任何想法和/或解释都会被贬低。
答案 0 :(得分:5)
向WifiP2pConfig
函数提供connect()
实例时,可以按如下方式设置此配置对象的groupOwnerIntent
属性:
WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = "..."; // insert ip here
config.groupOwnerIntent = 0;
config.wps.setup = WpsInfo.PBC;
manager.connect(..., config, ...);
this(groupOwnerIntent)是0到15之间的整数值 0表示成为组所有者的最小倾向,15表示 成为集体所有者的最高倾向。
此外,该演示可能会重复将文件发送到同一设备,因为始终与从以下位置获取的ip-address建立套接字连接:
WifiP2pInfo.groupOwnerAddress
如果您想支持双向通信,设置此功能的第一步是将非组所有者的IP地址发送给组所有者。
就断开/重新连接问题而言,我似乎与Android 4.0.2设备存在相同的不一致。
答案 1 :(得分:2)
我一直尝试使用wifi直接在两个设备之间传输文件。我使用Android SDK WifiDirectDemo作为基础。我的经历:
GO地址始终相同(至少在Samsung Nexus中),但这不是一个真正的问题,因为您可以使用它来了解谁是服务器(或客户端)。
另一件奇怪的事情是,当您从Android WifiManager获取设备时,以及从“/ proc / net / arp”文件中读取设备时,设备的MAC地址会有所不同。
最后我做了,你可以看到代码here。
我希望它可以帮到你!
答案 2 :(得分:1)
我最近一直在努力解决同样的问题。我想这是一个操作系统问题。为了简要介绍一下,我已经为具有不同操作系统版本的设备安装了Wi-Fi Direct应用程序,一个用于OS 4.0.1,另一个用于OS 4.0.2。断开并重新连接设备时,连接失败。在搜索设备时也是如此。但事实是,这只发生在OS 4.0.2的设备上。其他设备不会崩溃或断开连接。
在搜索该问题时,我找到了以下链接。人们讨论了这一点,他们有着共同的想法。显然这是OS 4.0.2问题。我不确定它是否与OS 4.0.3相同,但对于以前的版本OS 4.0.1肯定没有问题。
以下是链接: