从未收到Android WiFi Direct WIFI_P2P_PEERS_CHANGED_ACTION

时间:2014-11-12 08:10:59

标签: android wifi-direct

我正试图通过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直接用于服务发现,但这完全是另外一点,不是吗?

4 个答案:

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

但是,它没有正确执行。

我希望这对你有所帮助