Android WifiP2pManager createGroup 总是失败并显示 BUSY 状态

Android WifiP2pManager createGroup always fail with BUSY state

我用下面的代码创建了一个WifiP2p组

manager.requestGroupInfo(channel, new WifiP2pManager.GroupInfoListener() {
    public void onGroupInfoAvailable(WifiP2pGroup group){
        if (group != null) {
            manager.removeGroup(channel, new WifiP2pManager.ActionListener() {
                @Override
                public void onSuccess() {
                    manager.createGroup(channel, new WifiP2pManager.ActionListener() {
                        @Override
                        public void onSuccess() {
                        }

                        @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() {
                }

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

它总是失败,原因代码为 BUSY。我运行它在debug模式下,发现返回的WifiP2pGroup对象一直是null。然而它因 BUSY 原因而失败。我在应用程序 class 中创建并保留 WifiP2pManager 和 Channel 对象,并在整个应用程序中将它们作为单例使用。这可能是问题所在吗?我在网上找不到答案。

终于找到问题的根源了。 我的 WIFI 已关闭。我使用 WifiManager 打开 WIFI,现在它正在按预期创建组。