WifiP2pManager createGroup和removeGroup在BUSY状态下失败

时间:2015-05-23 21:04:40

标签: android wifi android-wifi wifi-direct wifip2p

当我尝试使用WifiP2pManager的{​​{1}}或createGroup时,在我的两个设备上,我获得了removeGroup回调,其中2(忙)为{{1} }。

我尝试使用此处提供的建议WifiP2pManager return BUSY state on CreateGroup(在创建新组之前删除组),但它没有帮助,因为我总是得到onFailure reason中的回调。

我测试的设备:LG Optimus G(CM 12.1 - Android 5.1),技嘉GSmart Guru G1(股票Android 4.2)。

更新

代码是:

onFailure

2 个答案:

答案 0 :(得分:1)

我收到此错误是因为当群组不存在时我尝试使用removeGroup。解决方案是在删除当前组或创建新组之前检查当前组是否存在。

这是工作代码(我使用Retrolambda):

    manager.requestGroupInfo(channel, group -> {
        if (group != null) {
            Debug.d("group != null");
            manager.removeGroup(channel, new WifiP2pManager.ActionListener() {
                @Override
                public void onSuccess() {
                    Debug.d();

                    manager.createGroup(channel, new WifiP2pManager.ActionListener() {
                        @Override
                        public void onSuccess() {
                            Debug.d();
                        }

                        @Override
                        public void onFailure(int reason) {
                            Debug.d("" + reason);
                        }
                    });
                }

                @Override
                public void onFailure(int reason) {
                    Debug.d("" + reason);
                }
            });
        } else {
            manager.createGroup(channel, new WifiP2pManager.ActionListener() {
                @Override
                public void onSuccess() {
                    Debug.d();
                }

                @Override
                public void onFailure(int reason) {
                    Debug.d("" + reason);
                }
            });
        }
    });

答案 1 :(得分:0)

@ Dr.Jukka评论说:关闭wifi后,也会导致BUSY状态。至少在我的情况下。