android - 为什么发现 Android Wi-Fi Direct 的对等点如此不可靠?

标签 android wifi-direct wifip2p

我正在试验 Android 的 Wi-Fi Direct(如果您愿意,也可以是 P2P)。我认为它在我的两部手机之间工作得非常好,但我意识到我遇到了 WifiP2pManager.discoverPeers() 和/或 WifiP2pManager.requestPeers() 的问题。我观察到这些结果:

  • 在整整 1 分钟多的时间里,没有发现任何对等点,也没有触发任何回调。我也通过 Android Wi-Fi 设置的 Wi-Fi Direct 部分观察到这一点。这很奇怪,因为有时发现几乎立即完成。

  • 我有一个 Roku 设备和一个手机 B,放在手机 A 旁边。虽然所有设备都连接到我的 Wi-Fi,但 Roku 只在大约 10% 的时间内出现,而手机 A 和 B 互相出现.

  • 当我断开两部手机与所有 Wi-Fi 的连接并进行另一次扫描时,Roku 出现了(!!!)但手机 B 没有出现,直到我至少刷新了十次。

我的两部手机是 Nexus 7(运行 4.4.4)和 Nexus 5(运行 5.0)。

最佳答案

我最近一直在开发一个基于 WiFi Direct(带有 WiFi P2P 服务发现)的连接系统的应用程序,我可以肯定地说的一件事是整个事情是......的巨大痛苦。主要是因为缺少文档,但也因为在开发基于 wifi-direct 的解决方案时,您需要在进行任何方法调用之前基本上注意所有内容(尤其是来自监听器的所有回调)。

我猜有两件最烦人的事:

关于android - 为什么发现 Android Wi-Fi Direct 的对等点如此不可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476428/

相关文章:

Android:更新 sqlite db 从网络服务器下载文件

android - 在 com.android.build.gradle.internal.api.DefaultAndroidSourceSet 类型的源集主上找不到参数 [] 的方法 bitwiseNegate()

android-wifi - WiFi Peer Discovery 的 Android O 问题

java - 在多个 Activity 中使用 Android WifiP2P

android - 静态对象在 Android 上保留它们的实例多长时间?

android - Volley 不会为我的自定义请求调用 getParams?

android - 如何在不共享 android 中的互联网连接(热点)的情况下创建 wifi 网络共享?

java - 如果按下连接按钮,如何创 build 备客户端或发送者

android - wifi直连文件共享

没有 Wifi 热点或 Wifi 直连的 Android 广播/接收数据