2016-09-05 61 views
3

我想从一个设备连接到不同设备一个接一个。因此,我所做的是检查我的设备是否已连接if(myDevice.status == 0),如果是,则删除组manager.removeGroup(channel, new ActionListener()WIFI P2P REMOVE GROUP

这里的问题是,经过几次这样做,方法removeGroup()去onFailure()与此错误:Disconnect failed. Reason :2这意味着“忙”。

我该如何阻止框架忙?两台设备之间是否存在正确的断开连接方式,以便在不出现任何问题的情况下启动与另一台设备的新连接?

回答

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(); 
    } 
} 
相关问题