3

我正在测试新技术 wifi direct 并且我在使用 android-sdk 附带的示例中的 wifi direct 演示时遇到了一些问题。

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

首先,我从设备 A 向 B 发送文件。这里没有问题,B 接收到文件。

然后 A 与 B 断开连接。

现在,从设备 BI 尝试向 A 发送文件。

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

要修复,我需要关闭并打开两个设备...

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

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

是因为新技术还不成熟,还是我的构建/驱动程序/等有问题,或者这个演示应用程序不支持双向共享。任何想法和/或解释都将不胜感激。

4

3 回答 3

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参考

这(groupOwnerIntent)是一个介于 0 和 15 之间的整数值,其中 0 表示成为组所有者的最小倾向,而 15 表示成为组所有者的最高倾向。

此外,该演示可能会重复将文件发送到同一设备,因为总是与从以下获得的 ip-address 建立套接字连接:

WifiP2pInfo.groupOwnerAddress

如果您想支持双向通信,设置的第一步是将非组所有者的 IP 地址发送给组所有者。

就断开/重新连接问题而言,我似乎与 Android 4.0.2 设备有同样的不一致。

于 2012-05-09T12:06:56.143 回答
2

我一直在尝试使用 wifi direct 在两个设备之间传输文件。我使用 Android SDK WifiDirectDemo 作为基础。我的经验:

GO 地址总是相同的(至少在三星 Nexus 中),但这并不是真正的问题,因为您可以使用它来知道谁是服务器(或客户端)。

另一个奇怪的事情是,当您从 Android WifiManager 获取设备的 MAC 地址时,当您从“/proc/net/arp”文件中读取它时,设备的 MAC 地址是不同的。

最后我做到了,你可以在这里看到代码。

我希望它对你有帮助!

于 2012-08-03T15:30:36.937 回答
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

于 2012-03-19T15:48:41.143 回答