Android - 如何关闭 Wifi-direct

Android - How to turn off Wifi-direct

我是 Java、Android 甚至 Whosebug 的新手,如果我的问题写得不好,请见谅。

我遵循了许多在线指南,这些指南向我展示了如何使用 Wifi-direct 连接两个设备。 我设法做到了,现在我只需要关闭连接。

我有一个 C++ "server" 对等点和一个 Android "client" 对等点,对于客户端,我正在使用 Wifi-Direct 演示(链接如下)

现在我不再需要连接了,所以我想关闭它并立即将两个设备重新连接到正常的 Wifi。

如果我尝试启动演示的 disconnect() 函数,它会进入 OnSuccess(),但 Wifi-Direct 图标不会消失; 奇怪的是,我根本找不到任何关于如何执行此操作的指南。

我的应用程序还有另一个问题...如果我已连接并关闭应用程序,Wifi-direct 图标仍然亮着,我无法使用 Wifi 连接到互联网...我想套接字可能仍处于 TIME_WAIT 状态,但我不确定如何检查它...

提前致谢!

编辑:我发现一些有用的答案,但没有显示如何关闭 Wifi-Direct: http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts#p2p_group_add

https://android.googlesource.com/platform/development/+/master/samples/WiFiDirectDemo/

Wi-Fi Direct Android

试试这个

在清单文件中添加权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

然后你可以在你的class中使用下面的代码 (用于关闭 Wifi)

WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 

wifiManager.setWifiEnabled(false);

使用WifiP2pManager.removeGroup(Channel channel, ActionListener listener)离开群组,这将停止您设备上的Wifi Direct。

http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html