android - WifiDirect .discoverPeers经常忙或出错

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

有时它工作得很好,有时它会花上半个多小时的错误,每次我点击我的按钮发现同行。我将以大约相同的速度得到繁忙(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/

相关文章:

java - Java中的委托(delegate)方法调用

android - 如何在 Android 上制作分辨率独立的相机预览?

java - RoboGuice @Inject 注入(inject)的类何时可以为 null?

android - 附近连接最大连接设备 - 说明

java - 将字符串转换为 JSON 时出现未终止的对象

android - 仅从android 0 --min-api 26开始支持Invoke-customs。

android - 使用 wifi direct 在 Android 设备之间传输数据?

ios - iOS上的WiFi Direct

cordova - 我们有任何可用于 PhoneGap 中 Wi-Fi Direct 的插件吗?

java - 什么会导致 WifiP2pManager.connect 失败?