【问题标题】:How to disconnect from a wifi network through adb?如何通过adb断开wifi网络?
【发布时间】:2017-04-30 12:18:14
【问题描述】:

我知道我们可以通过“adb shell svc wifi disable”命令关闭 Wifi,但我不想完全关闭 Wifi。我想通过 adb 断开与特定 ssid 的连接。有可能吗?

编辑:我收到一条通知,说这个问题被认为是这个问题的欺骗:How to turn off Wifi via ADB?。实际上不是。正如第一段中明确提到的,我不想关闭 wifi,而是想简单地断开与特定网络的连接。这就像长按网络并点击“忘记网络”。本质上,我想模拟用户离开 wifi 网络而无需关闭 wifi 的情况。

【问题讨论】:

  • 没有。你不能,除非你有root权限
  • 如果你想模拟用户离开wifi网络的情况 - 你做错了。您不应该更改手机上的任何 wifi 设置。而是设置一个测试 wifi 接入点(openwrt 支持的任何路由器都可以用于此目的)并控制其 wifi。
  • @RandykaYudhistira 如何为根设备完成?

标签: android adb android-wifi


【解决方案1】:

如果你有 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 方法中获得的参数。

【讨论】:

  • 我正在尝试以编程方式但无法正常工作。这是sn-p val command = "adb shell wpa_cli remove_network ${wifiManager.connectionInfo.networkId}" val process = Runtime.getRuntime().exec(arrayOf("su", command))
【解决方案2】:

这个命令帮我完成了

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

【讨论】:

  • OP 表示他们不想使用此命令禁用所有 Wi-Fi,而只想断开与特定网络的连接。
【解决方案3】:

一种选择是使用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

【讨论】:

    【解决方案4】:

    你不能。但是,这不足以满足您的问题,连接到“其他 wifi”的方法很棘手。 (是的,不是断开连接)

    安装一个应用,并通过 adb 向应用发送命令。

    看到这个:https://stackoverflow.com/a/37303412/850347

    我已经构建了一个应用程序,它可以在这里找到: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://stackoverflow.com/a/37303412/850347

    【讨论】:

    • OP 明明知道svc wifi disable 命令但不想用!
    • @TDG 哦,是的,我找到了。谢谢。
    • 谢谢斯坦利。我希望 adb 有一种本地方式来做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    相关资源
    最近更新 更多