WIFI P2P REMOVE GROUP

3
我希望能从一个设备逐个连接到不同的设备上。所以我会检查我的设备是否已经连接,代码如下:if(myDevice.status == 0)。如果是这样,那么我会移除组:manager.removeGroup(channel, new ActionListener()

但问题在于,做了几次后,方法removeGroup()就会出现这个错误:Disconnect failed. Reason :2,它的意思是"BUSY"。
那么,如何停止框架忙碌的状态呢?有没有适当的方法可以在两个设备之间断开连接,以便在没有任何问题的情况下开始与另一个设备建立新的连接?
1个回答

3

Wifi P2p每次创建新组时都会创建一个持久组。因此,仅使用removeGroup()无法起作用。您将需要使用DeletePersistantGroup方法(该方法已被隐藏)。使用反射在此方法上调用:

    private void deletePersistentGroups(){
    try {
        Method[] methods = WifiP2pManager.class.getMethods();
        for (int i = 0; i < methods.length; i++) {
            if (methods[i].getName().equals("deletePersistentGroup")) {
                // Delete any persistent group
                for (int netid = 0; netid < 32; netid++) {
                    methods[i].invoke(manager, channel, netid, null);
                }
            }
        }
    } catch(Exception e) {
        e.printStackTrace();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接