【问题标题】:WIFI P2P REMOVE GROUPWIFI P2P 删除组
【发布时间】:2016-09-05 13:10:09
【问题描述】:
我想从一台设备一个接一个连接到不同的设备。所以我要做的是检查我的设备是否已连接if(myDevice.status == 0),如果是,我删除组manager.removeGroup(channel, new ActionListener()。
这里的问题是,在这样做了几次之后,方法 removeGroup() 转到 onFailure() 并出现以下错误:Disconnect failed. Reason :2 表示“忙”。
如何阻止框架忙碌?是否有任何适当的方法断开两台设备之间的连接,以便毫无问题地开始与另一台设备的新连接?
【问题讨论】:
标签:
android
wifi-direct
wifip2p
【解决方案1】:
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();
}
}