Comment désactiver Wifi via ADB?
je suis en train d'automatiser une procédure de test pour les appels wifi et je me demandais s'il y avait un moyen de désactiver/activer le wifi via adb?
je voudrais désactiver/activer le wifi ou supprimer les appels wifi (com.movial.wificall) et le redémarrer.
est-il possible de faire tout cela via les commandes ADB et shell?
jusqu'à présent, j'ai trouvé:
android.net.wifi.WifiManager
setWifiEnabled(true/false)
je suis juste pas sûr de la façon de les mettre ensemble
8 réponses
utilisant "svc" par ADB (Root required):
Activer:
adb shell su -c 'svc wifi enable'
Désactiver:
adb shell su -c 'svc wifi disable'
utilisant les événements clés par 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
La première ligne de lancement "wifi.Wifisettings " activité qui ouvre la page Paramètres WiFi. La deuxième ligne de simuler des touches.
j'ai testé ces deux lignes sur un droïde X. Mais les événements clés ci-dessus doivent probablement être édités dans d'autres appareils en raison de la disposition différente des paramètres.
plus d'informations sur" keyevents " here .
je cherchais la même chose pour allumer et éteindre bluetooth, et j'ai trouvé ceci:
adb shell svc wifi enable|disable
la façon Simple d'activer le wifi sur les appareils non enracinés est d'utiliser une application simple:
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" />
commandes 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
- aller à l'emplacement
android/android-sdk/platform-tools
- shift +clic droit
-
ouvrez cmd ici et tapez les commandes suivantes
-
adb shell
-
su
-
svc wifi enable/disable
-
-
fait!!!!!
adb shell "svc wifi enable"
Cela a fonctionné et il rend l'action en arrière-plan sans ouverture option relative à !!
j'ai testé cette commande: adb shell suis démarrer -un android.intention.action.MAIN-N com.Android.paramètre./wifi.WifiSettings la commande adb shell entrée keyevent 19 & adb shell entrée keyevent 19 & adb shell entrée keyevent 23
et ne fonctionne que sur l'invite de fenêtre, peut-être à cause d'un certain pilote
à propos de adb shell svc wifi activer|désactiver je suppose que seul le travail avec de la racine de l'autorisation
je peux le faire:
settings put global wifi_on 0
settings put global wifi_scan_always_enabled 0
parfois, si fait pendant le démarrage (i.e. pour corriger bootloop tel que ce ), il ne s'applique pas bien et vous pouvez procéder aussi en activant le mode avion en premier:
settings put global airplane_mode_on 1
settings put global wifi_on 0
settings put global wifi_scan_always_enabled 0
L'autre option est de forcer ceci avec:
while true; do settings put global wifi_on 0; done
testé sur Android 7 sur LG G5 (SE) avec (non-référencé) stock mod.
utiliser avec des guillemets
ex: adb shell "svc wifi enable"
cela va fonctionner :)