Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android上创建非持久性WiFi直连组?_Android_Wifi Direct_Wifip2p - Fatal编程技术网

如何在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这是正确的想法,但不起作用??尽管如此。。。