WifiDirect .discoverPeers通常是BUSY或ERROR

时间:2014-09-23 17:02:29

标签: android wifi-direct

manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {

                @Override
                public void onSuccess() {
                    Toast.makeText(WiFiDirectActivity.this, "Discovery Initiated",
                            Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onFailure(int reasonCode) {
                    Toast.makeText(WiFiDirectActivity.this, "Discovery Failed : " + reasonCode,
                            Toast.LENGTH_SHORT).show();
                }
            });

有时候它运行得很好,有时候每次点击我的按钮发现同行时,它会花费超过半小时的错误。我将以大致相同的速率获得BUSY(2)和ERROR(0)结果。

我还没有找到为什么我会得到这些结果,如果我只是要和他们一起生活。我的平板电脑是运行Android 4.3的Nexus 7。

问题:

我可以期待其他设备一样片状吗?  我能做些什么来改善他们的行为吗?  我可以做些什么来弄清楚更多细节而不是"忙碌"或"错误"? LOGCAT似乎没有帮助......

编辑:我的意思是我有两款平板电脑,两款都是Nexus 7s。

1 个答案:

答案 0 :(得分:0)

您可以将discoverPeers方法放在递归循环中。

private void discoverPeersTillSuccess() {
    manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
        @Override
        public void onSuccess() {
            // remaining code
        }

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

这将继续尝试discoverPeers,直到它成功返回。