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();
                }
            });

有时它工作得很好,有时它会花上半个多小时的错误,每次我点击我的按钮发现同行。我将以大约相同的速度得到繁忙(2)和错误(0)的结果。
我还没有弄清楚为什么我会得到这些结果,如果我不得不和他们一起生活的话。我的平板电脑是运行android 4.3的nexus 7。
问题:
我能指望其他设备也会同样不稳定吗?
我能做些什么来改善他们的行为吗?
除了“忙”或“出错”之外,我能做些什么来找出更多的细节吗?Logcat似乎帮不上忙…
编辑:我是说我有两个平板电脑,都是Nexus7S。

最佳答案

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

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

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

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

关于android - WifiDirect .discoverPeers经常忙或出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26000750/

10-10 09:38