我正试图通过WiFi直接为Android制作多人游戏。我按照http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html上的说明连接到设备。
我与discoverPeers()
一起使用的ActionListener成功返回,但后来我从未收到WIFI_P2P_PEERS_CHANGED_ACTION
意图,我将调用requestPeers()
。奇怪的是,当我在一台设备上进入WiFi直接系统设置时,另一台设备能够通过我的应用程序成功检测到它。我是否需要在我的应用程序中发现我的设备?我还没有找到任何表明在Android开发者资源中有关WiFi P2P的信息。有WiFi直接用于服务发现,但这完全是另外一点,不是吗?
答案 0 :(得分:3)
您还需要在其他设备上运行discoverPeers()
现在您将收到WIFI_P2P_PEERS_CHANGED_ACTION
意图
答案 1 :(得分:0)
您是否在广播接收器意图过滤器中添加了WIFI_P2P_PEERS_CANGED_ACTION?我们需要更多信息来帮助您。
答案 2 :(得分:0)
您必须在设置/ Wifi /直接Wifi /可用设备
下找到设备答案 3 :(得分:0)
我遇到了和你一样的问题。
在这种情况下,会有两个因素导致这个问题。 首先,事件从未发生过,也没有向他人广播。 第二,尽管事件发生了,但意图过滤器却没有捕获它。
在我的情况下,我发现接收器没有正确地获得事件。 原因是因为我没有正确地将Receiver注册到intent过滤器。
之后
intentFilter.addAction(WifiP2PManager.WIFI_P2P_PEERS_CHANGED_ACTION),
我没有做
ct.registerReceiver(bReceiver, intentFilter).
ct是活动或背景,和 bReceiver是WifiDirectBroadcastReceiver。我先写了
ct.registerReceiver(bReceiver, intentFilter),
但是,它没有正确执行。
我希望这对你有所帮助