Как отключить Wi-Fi через АБР?

Я автоматизирую процедуру тестирования для wifi-звонка, и мне было интересно, есть ли способ отключить / включить Wi-Fi через adb?

Я хотел бы отключить / включить Wi-Fi или убить Wi-Fi (com.movial.wificall) и перезапустить его.

Можно ли все это сделать с помощью команд adb и shell?

До сих пор я нашел:

android.net.wifi.WifiManager setWifiEnabled(true/false) 

Я просто не уверен, как его собрать

Solutions Collecting From Web of "Как отключить Wi-Fi через АБР?"

Использование «svc» через ADB (требуется корень):

Включить:

 adb shell su -c 'svc wifi enable' 

Отключение:

 adb shell su -c 'svc wifi disable' 

Использование ключевых событий через АБР:

 adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings adb shell input keyevent 20 & adb shell input keyevent 23 

Первая строка запускает действие «wifi.WifiSettings», открывающее страницу настроек WiFi. Вторая строка имитирует нажатия клавиш.

Я тестировал эти две строки на Droid X. Но ключевые события выше, вероятно, нужно редактировать на других устройствах из-за разного макета настроек.

Подробнее о «ключах» здесь .

Я искал то же самое, чтобы включить / выключить bluetooth, и я нашел это:

 adb shell svc wifi enable|disable 

Простым способом переключения Wi-Fi на не-корневые устройства является использование простого приложения:

 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WifiManager wfm = (WifiManager) getSystemService(Context.WIFI_SERVICE); try { wfm.setWifiEnabled(Boolean.parseBoolean(getIntent().getStringExtra("wifi"))); } catch (Exception e) { } System.exit(0); } } - public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WifiManager wfm = (WifiManager) getSystemService(Context.WIFI_SERVICE); try { wfm.setWifiEnabled(Boolean.parseBoolean(getIntent().getStringExtra("wifi"))); } catch (Exception e) { } System.exit(0); } } 

AndroidManifest.xml:

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

Команды ADB:

 $ adb shell am start -n org.mytools.config/.MainActivity -e wifi true $ adb shell am start -n org.mytools.config/.MainActivity -e wifi false 
  1. Перейти на сайт android/android-sdk/platform-tools
  2. Shift + правый щелчок
  3. Откройте здесь cmd и введите следующие команды

    1. adb shell
    2. su
    3. svc wifi enable/disable
  4. сделанный!!!!!

 adb shell "svc wifi enable" 

Это сработало и делает действие в фоновом режиме, не открывая соответствующий вариант !!

Я протестировал эту команду: adb shell am start -a android.intent.action.MAIN -n com.android.settings / .wifi.WifiSettings Входной код оболочки adb keyevent 19 и входной ключ оболочки adb keyevent 19 и входной ключ оболочки adb 23

И работает только по приглашению окна, возможно, из-за какого-то драйвера

About adb shell svc wifi enable | отключить, я думаю, что работать только с правами root

Использовать с кавычками

Ex: adb shell "svc wifi enable"

Это сработает 🙂