J'automatise une procédure de test pour les appels Wi-Fi et je me demandais s'il y avait un moyen d'activer/désactiver le Wi-Fi via ADB
Je voudrais soit désactiver/activer le wifi ou tuer les appels wifi (com.movial.wificall) et le redémarrer.
Est-il possible de faire tout cela via les commandes adb et shell?
jusqu'ici j'ai trouvé:
Android.net.wifi.WifiManager
setWifiEnabled(true/false)
Je ne suis pas sûr de savoir comment le mettre ensemble
Activer:
adb Shell su -c 'svc wifi enable'
Désactiver:
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
La première ligne lance une activité "wifi.WifiSettings" qui ouvre la page des paramètres WiFi. La deuxième ligne simule les appuis sur les touches.
J'ai testé ces deux lignes sur un Droid X. Mais les événements clés ci-dessus doivent probablement être modifiés dans d'autres appareils en raison de la disposition différente des paramètres.
Plus d'infos sur "keyevents" ici .
Je cherchais le même pour activer/désactiver le bluetooth, et j'ai trouvé ceci:
adb Shell svc wifi enable|disable
Un moyen simple de basculer le wifi sur des appareils non root 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
Android/android-sdk/platform-tools
autres cmd tutaj i wpisz następujące polecenia
adb Shell
su
name__svc wifi enable/disable
gotowe !!!!!
adb Shell "svc wifi enable"
Cela a fonctionné et permet d’agir en arrière-plan sans ouvrir d’option connexe !!
J'ai testé cette commande:
adb Shell am start -a Android.intent.action.MAIN -n com.Android.settings/.wifi.WifiSettings
adb Shell input keyevent 19 & adb Shell input keyevent 19 & adb Shell input keyevent 23
et ne fonctionne que sur l'invite de la fenêtre, peut-être à cause de certains pilotes
à propos de adb Shell svc wifi enable|disable
je suppose que cela ne fonctionne qu'avec la permission root
Je peux juste faire:
settings put global wifi_on 0
settings put global wifi_scan_always_enabled 0
Parfois, si cela est fait lors du démarrage (c'est-à-dire pour réparer bootloop tel que ceci ), cela ne s'applique pas bien et vous pouvez également activer d'abord le mode avion:
settings put global airplane_mode_on 1
settings put global wifi_on 0
settings put global wifi_scan_always_enabled 0
Une autre option est de forcer ceci avec:
while true; do settings put global wifi_on 0; done
Testé sous Android 7 sur LG G5 (SE) avec stock mod (non raciné).
utiliser avec des citations
ex:adb Shell "svc wifi enable"
ça va marcher :)