Подтвердить что ты не робот

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

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

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

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

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

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

Я просто не знаю, как это сделать.

4b9b3361

Ответ 1

Использование "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" здесь.

Ответ 2

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

adb shell svc wifi enable|disable

Ответ 3

Простым способом переключения 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);
    }
}

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

Ответ 4

  • перейти к местоположению android/android-sdk/platform-tools
  • shift + щелкните правой кнопкой мыши
  • откройте cmd и введите следующие команды

    • adb shell
    • su
    • svc wifi enable/disable
  • сделано!!!!!

Ответ 5

adb shell "svc wifi enable"

Это сработало, и оно работает в фоновом режиме без открытия соответствующей опции.

Ответ 6

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

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

about adb shell svc wifi enable | disable Я предполагаю, что работает только с правами root

Ответ 7

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

ex: adb shell "svc wifi enable"

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

Ответ 8

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

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) с мотивом (некорневым).