如何通过adb断开wifi网络连接?

10
我知道我们可以通过“adb shell svc wifi disable”命令关闭WiFi,但是我不想完全关闭WiFi。 我想通过adb从特定的ssid断开连接。 这可能吗?
编辑:我收到了一条通知,说这个问题被认为是这个问题的重复:如何通过ADB关闭WiFi?。但实际上并不是这样。如第一段明确提到的那样,我不想关闭WiFi,而只想从特定的网络中断开连接。这就像长按一个网络,然后点击“忘记网络”。本质上,我想模拟用户离开WiFi网络的情况,而无需关闭WiFi。

不行,除非你有 root 访问权限。 - Randyka Yudhistira
如果你想模拟用户离开wifi网络的情况,那么你做错了。你不应该更改手机上的任何wifi设置。相反,应该设置一个测试用的wifi接入点(任何openwrt支持的路由器都可以),并控制它的wifi信号。 - Alex P.
@RandykaYudhistira 如何在已经root的设备上完成这个操作? - Suban Dhyako
@SubanDhyako https://dev59.com/i53ha4cB1Zd3GeqPTV5U#45283179 - Randyka Yudhistira
4个回答

8
如果您具有root访问权限,可以使用wpa_cli来执行此操作。
首先,您可以使用wpa_cli的list_networks命令获取要断开连接的网络的网络ID。
$ adb shell
# wpa_cli
> list_networks
**network id** / ssid / bssid / flags
0   001aLinksys14081-2G any [CURRENT]

接着只需要运行wpa_cli remove_network {network id}命令,其中{network id}参数是通过list_networks方法得到的。


我正在尝试编程,但是不起作用。这是代码片段:`val command = "adb shell wpa_cli remove_network ${wifiManager.connectionInfo.networkId}" val process = Runtime.getRuntime().exec(arrayOf("su", command))` - Muhammad Babar

4

一种选择是使用cmd wifi。要断开与Wi-Fi网络的连接,您可以这样“忘记”:

adb shell cmd wifi list-networks
adb shell cmd wifi forget-network <networkId from list-networks>

您可以使用以下命令查看cmd wifi的帮助文档:

adb shell cmd wifi -h

0

这个命令对我很有效

docker exec -it $container_id /bin/bash -c "cd /root//shared-tools/android-sdk/platform-tools; ./adb shell 'svc wifi disable'"


OP说他们不想使用这个命令禁用所有Wi-Fi,只是要断开特定网络的连接。 - Always Learning

-3

你不能。但是,这样做还不足以满足你的问题,有一个巧妙的方法可以连接到“其他wifi”。(是的,它不是断开连接)

安装一个应用,并通过adb发送命令给这个应用程序。

请参考:https://dev59.com/Xmoy5IYBdhLWcg3wMLSj#37303412

我已经构建了一个可以实现这一功能的应用程序,它可以在这里下载:https://github.com/steinwurf/adb-join-wifi

安装完应用程序后,可以使用以下ADB命令加入一个WiFi接入点:

adb shell am start -n com.steinwurf.adbjoinwifi/com.steinwurf.adbjoinwifi.MainActivity -e ssid [SSID] -e password_type [PASSWORD_TYPE] -e password [WIFI PASSWORD]

看这里:https://dev59.com/Xmoy5IYBdhLWcg3wMLSj#37303412


OP明确表示他知道svc wifi disable命令,但不想使用它! - TDG
@TDG 哦,是的,我找到了。谢谢。 - Stanley Ko
谢谢斯坦利。我希望adb有一种本地方式来解决这个问题。 - Ganesh Subramanian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接