Android WiFi直接演示问题

时间:2012-02-16 11:43:40

标签: android p2p android-wifi android-wireless

我正在测试新技术wifi直接和我有一些问题使用 来自android-sdk附带的样本的wifi直接演示。

所以,我有两个设备A和B,都有android 4.0.3。

首先,从设备A,我发送文件到B.这里没有错,B 收到文件。

然后A断开与B.

现在,我从设备B尝试将文件发送到A.

但是接收文件的设备是B,而不是A.

要修复,我需要在两台设备上关闭......

此外,有时当我点击断开连接并尝试 再次连接,连接失败,我必须禁用和 启用wifi直接...

有其他人遇到过这种情况吗?

是因为新技术尚未成熟或未成熟 我的build / driver / etc或者这个demoapp有问题 不支持双向共享。 任何想法和/或解释都会被贬低。

3 个答案:

答案 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, ...);

来自android reference

  

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肯定没有问题。

以下是链接:

http://code.google.com/p/android/issues/detail?id=24402

http://osdir.com/ml/android-platform/2012-01/msg00226.html