2016-12-15 8 views
2

Я понимаю, что мы можем отключить Wi-Fi через команду «adb shell svc wifi disable», но я не хочу полностью отключать Wifi. Я хочу отключиться от конкретного ssid через adb. Является ли это возможным?Как отключиться от сети Wi-Fi через adb?

Редактировать: Я получил уведомление, сказав, что этот вопрос идентифицирован как обман этого вопроса: How to turn off Wifi via ADB?. На самом деле это не так. Как было ясно указано в первом абзаце, я не хочу отключать Wi-Fi, но хочу просто отключиться от конкретной сети. Это похоже на длительное нажатие на сеть и нажатие «Забудьте о сети». По сути, я хочу имитировать состояние пользователя, выходящего из Wi-Fi сети, без необходимости отключать Wi-Fi.

+0

нет. вы не можете, за исключением того, что у вас есть root-доступ –

+0

, если вы * хотите имитировать состояние пользователя, выходящего из Wi-Fi сети * - вы делаете это неправильно. Вы не должны изменять настройки Wi-Fi на телефоне. Вместо этого настройте тестовую точку доступа Wi-Fi (любой маршрутизатор, поддерживаемый openwrt, будет работать для этой цели) и вместо этого будет управлять своим Wi-Fi. –

ответ

-1

Вы не можете. Но этого будет недостаточно для удовлетворения вашего вопроса, есть сложный способ подключения к «другому Wi-Fi». (Да, это не отключает)

Установите приложение и отправьте команду в приложение с помощью adb.

Смотреть это: https://stackoverflow.com/a/37303412/850347

Я уже создать приложение, которое делает так, и это доступно здесь: https://github.com/steinwurf/adb-join-wifi

После того, как приложение установлено, точка доступа Wi-Fi можно соединить с помощью следующей 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] 

, а затем вам просто нужно запустить wpa_cli remove_network {network id}, где {идентификатор сети} параметр - тот, который вы получили по методу list_networks.