Android WiFi Direct 演示问题

标签 android p2p android-wifi android-wireless

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

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

首先,我从设备 A 向 B 发送了一个文件。没有问题,B 收到文件。

然后A与B断开连接。

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

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

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

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

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

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

最佳答案

当为 connect() 函数提供一个 WifiP2pConfig 实例时,您可以设置此配置对象的 groupOwnerIntent 属性,如下所示:

WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = "...";                 // insert ip here
config.groupOwnerIntent = 0;
config.wps.setup = WpsInfo.PBC;
manager.connect(..., config, ...);

来自android reference :

This (the groupOwnerIntent) is an integer value between 0 and 15 where 0 indicates the least inclination to be a group owner and 15 indicates the highest inclination to be a group owner.

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

WifiP2pInfo.groupOwnerAddress

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

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

关于Android WiFi Direct 演示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310684/

相关文章:

android - 无法在 dependencies build.gradle 中添加支持库使用 compile()

java - 是否可以在没有 Firebase Cloud Messaging (FCM) 的情况下向所有安装了我的应用程序的设备发出推送通知?

Android 应用程序项目未显示在下拉列表中

c++ - 是否有任何替代方法来实现 WebRTC SFU,只有 1 个上传流?

ruby - 使用 ruby​​ 连接到 torrent "swarm"或 DHT

apache-flex - Flex,如何从连接到我的流的远程用户获取对等 ID?

java - 在 Android 上使用 Wi-Fi 创建 P2P 连接

android - 尝试使用 Dropbox 核心 API 从手机链接到 Dropbox 帐户时出错

将 EAP 与 PEAP 结合使用时,Android 身份验证会陷入僵局

android - Android 上的 Wifi 感知和 Wifi P2P 之间的区别?