Android上的WiFi Direct工作不正常

时间:2012-10-04 14:41:08

标签: java android android-4.2-jelly-bean wifi-direct

我正在尝试使用wifi直接在android Jelly Bean 4.1.1中开发一个应用程序。如果启用了p2p,我立即致电

mManager.discoverPeers(mChannel, actionListener);

之后我接到了回电话

onPeersAvailable(WifiP2pDeviceList)

我正在使用2台三星(Google)Nexus设备进行测试,并且两者都启用了wifi直接。但是这个回调正在返回一个空的同伴列表。但是,例如,如果我点击默认wifi直接界面上的搜索同行按钮,则第二个设备会立即触发

  

WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION

这个内线调用

onPeersAvailable(WifiP2pDeviceList peers)

因为我正在使用

请求该事件的同伴
mManager.requestPeers(mChannel, WifiDirectService.this);

这次我将能够看到同龄人。我看了很多次。

可能的原因是什么? 感谢

1 个答案:

答案 0 :(得分:1)

您应该使用Discovering peermethod:

manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
    @Override
    public void onSuccess() {
        ...
    }

    @Override
    public void onFailure(int reasonCode) {
        ...
    }
});

如果发现过程成功并检测到对等体,则系统会广播WIFI_P2P_PEERS_CHANGED_ACTION意图,您可以在广播接收器中侦听该意图以获取对等体列表。当您的应用程序收到WIFI_P2P_PEERS_CHANGED_ACTION意图时,您可以使用requestPeers()请求已发现的对等方的列表。

完整示例请检查:http://developer.android.com/guide/topics/connectivity/wifip2p.html#discovering