如何在android上创建非持久性WiFi直连组?
第一次调用如何在android上创建非持久性WiFi直连组?,android,wifi-direct,wifip2p,Android,Wifi Direct,Wifip2p,第一次调用WifiP2pManager.connect时,目标设备上会出现一个确认对话框来接受连接 在随后的连接中,不再询问此确认,组将保留在设备上 我不希望出现这种行为,因为我希望启动连接的设备始终是组所有者。持久化组时,无法更改组所有者 有没有办法创建临时组而不是持久组?或者,当我处理完持久组后,我可以“忘记”它吗?在Wifip2pManager中不删除该组,请执行您需要的操作,android.net.wifi.p2p.WifiP2pManager.ActionListener) 我认为,当
WifiP2pManager.connect
时,目标设备上会出现一个确认对话框来接受连接
在随后的连接中,不再询问此确认,组将保留在设备上
我不希望出现这种行为,因为我希望启动连接的设备始终是组所有者。持久化组时,无法更改组所有者
有没有办法创建临时组而不是持久组?或者,当我处理完持久组后,我可以“忘记”它吗?在Wifip2pManager中不删除该组,请执行您需要的操作,android.net.wifi.p2p.WifiP2pManager.ActionListener)
我认为,当您完成连接时,调用该函数会导致它每次都要求重新连接。
WifiP2pManager.removeGroup
并不能满足我的要求。当您重新连接到同一设备时,它仍会记住该组
但是我发现有一个隐藏的方法WifiP2pManager.deletePersistentGroup
,我现在通过反射调用它。这不太好,但现在需要做
private void removeAndDeleteGroup(WifiP2pGroup wifiP2pGroup) {
wifiP2PManager.removeGroup(wifiChannel, new SimpleLoggingActionListener("removeGroup"));
try {
Method getNetworkId = WifiP2pGroup.class.getMethod("getNetworkId");
Integer networkId = (Integer) getNetworkId.invoke(wifiP2pGroup);
Method deletePersistentGroup = WifiP2pManager.class.getMethod("deletePersistentGroup",
WifiP2pManager.Channel.class, Integer.class, WifiP2pManager.ActionListener.class);
deletePersistentGroup.invoke(wifiP2PManager, wifiChannel, networkId, new SimpleLoggingActionListener("deletePersistentGroup"));
} catch (NoSuchMethodException e) {
Log.e("WIFI", "Could not delete persistent group", e);
} catch (InvocationTargetException e) {
Log.e("WIFI", "Could not delete persistent group", e);
} catch (IllegalAccessException e) {
Log.e("WIFI", "Could not delete persistent group", e);
}
}
No removeGroup不删除组ironytried这是正确的想法,但不起作用??尽管如此。。。