Как отключить Wifi через ADB?

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

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

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

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

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

Я просто не уверен, как положить его вместе

8 ответов


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

включить:

adb shell su -c 'svc wifi enable'

отключить:

adb shell su -c 'svc wifi disable'

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

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. Но ключевые события выше, вероятно, нужно редактировать в других устройствах из-за разных Настройка макета.

дополнительная информация о" keyevents"здесь.


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

adb shell svc wifi enable|disable

простой способ переключения wifi на некорневых устройствах-использовать простое приложение:

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-андроид.намерение.действие.MAIN-N com.андроид.настроить./беспроводной доступ в интернет.WifiSettings вклад АБР оболочки keyevent не 19 ввод и АБР оболочки keyevent не 19 & оболочку ADB ввод keyevent не 23

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

о adb shell svc wifi включить / отключить Я думаю, что только работать с правами root


Я могу просто сделать:

settings put global wifi_on 0
settings put global wifi_scan_always_enabled 0

иногда, если это делается во время загрузки (т. е. исправить bootloop, такие как это), он не применяется хорошо, и вы можете продолжить также включение режима самолета сначала:

settings put global airplane_mode_on 1
settings put global wifi_on 0
settings put global wifi_scan_always_enabled 0

другой вариант-заставить это с помощью:

while true; do settings put global wifi_on 0; done

протестировано в Android 7 на LG G5 (SE) с (unrooted) stock mod.


использовать с цитатами

ex:adb shell "svc wifi enable"

это будет работать :)