2016-12-15 159 views
2

我知道我們可以通過「adb shell svc wifi disable」命令關閉Wifi,但我不想完全關閉Wifi。我想通過adb從特定的ssid斷開連接。可能嗎?如何通過adb從wifi網絡斷開連接?

編輯:我收到一個通知,說這個問題被認爲是這個問題的一個騙局:How to turn off Wifi via ADB?。它實際上不是。正如第一段中明確提到的那樣,我不想關閉wifi,但想要簡單地從特定網絡斷開連接。這就像長時間按網絡並點擊「忘記網絡」。基本上我想模擬用戶移出wifi網絡的條件,而不必關閉wifi。

+0

沒有。你不能,除非你有root權限 –

+0

如果你想模擬用戶移出wifi網絡的情況*你做錯了。你不應該改變手機上的任何WiFi設置。相反,建立一個測試WiFi接入點(openwrt支持的任何路由器都可以用於此目的)並控制其wifi。 –

回答

-1

你不能。但是,這將不足以滿足你的問題,有連接到「其他無線網絡」的棘手方式。 (是的,它不是斷開連接)

安裝一個應用程序,並通過adb發送命令到應用程序。

看到這個:https://stackoverflow.com/a/37303412/850347

我已經建立一個應用程序,它這樣做,它是可以在這裏找到:https://github.com/steinwurf/adb-join-wifi

一旦安裝了該應用,WiFi接入點可以使用下面的ADB命令加盟:

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

+0

OP明確表示他知道'svc wifi disable'命令,但不想使用它! – TDG

+0

@TDG哦,是的,我找到了。謝謝。 –

+0

謝謝史丹利。我希望adb有一個原生的方式來做到這一點。 –

3

如果你有root權限,你可以使用wpa_cli。

首先,你可以使用wpa_cli`s list_networks得到要斷開

$ adb shell 
# wpa_cli 
> list_networks 
**network id**/ssid/bssid/flags 
0 001aLinksys14081-2G any [CURRENT] 

網絡的網絡ID,然後你只需要運行wpa_cli remove_network {network id},其中{網絡ID}參數是您在list_networks方法中獲得的參數。