Как отключить 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
- на месте
android/android-sdk/platform-tools
- shift+щелчок правой кнопкой мыши
-
откройте cmd здесь и введите следующие команды
adb shell
-
su
svc wifi enable/disable
готово!!!!!
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.