Comment désactiver le Wifi via ADB?

Im 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 soit désactiver / activer le wifi ou tuer les appels wifi (com.movial.wificall) et le redémarrer.

Est-il possible de tout faire via les commandes adb et shell?

Jusqu’à présent, j’ai trouvé:

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

Je ne suis pas sûr de savoir comment le mettre ensemble

Utilisation de “svc” via ADB (rooted required):

Activer:

 adb shell su -c 'svc wifi enable' 

Désactiver:

 adb shell su -c 'svc wifi disable' 

Utilisation des événements clés via 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 lance l’activité “wifi.WifiSettings” qui ouvre la page Paramètres WiFi. La deuxième ligne simule des 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 sur d’autres appareils en raison de la disposition différente des parameters.

Plus d’infos sur les “keyevents” ici .

Je cherchais le même pour activer / désactiver Bluetooth, et j’ai trouvé ceci:

 adb shell svc wifi enable|disable 

Un moyen simple de changer de wifi sur des appareils non rootés consiste à 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().getSsortingngExtra("wifi"))); } catch (Exception e) { } System.exit(0); } } 

AndroidManifest.xml:

  

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 
  1. aller à l’emplacement android/android-sdk/platform-tools
  2. Maj + clic droit
  3. Ouvrez cmd ici et tapez les commandes suivantes

    1. adb shell
    2. su
    3. svc wifi enable/disable
  4. terminé!!!!!

 adb shell "svc wifi enable" 

Cela a fonctionné et cela rend l’action en arrière-plan sans ouvrir l’option associée !!

J’ai testé cette commande: le shell adb est start -a android.intent.action.MAIN -n com.android.settings / .wifi.WifiSettings

et ne fonctionne que sur l’invite de la fenêtre, peut-être à cause d’un pilote

à propos de adb shell svc wifi activer | désactiver je suppose que seulement fonctionner avec l’autorisation root

Je peux juste faire:

 settings put global wifi_on 0 settings put global wifi_scan_always_enabled 0 

Parfois, si cela est fait pendant le démarrage (par exemple pour corriger un tel bootloop ), cela ne s’applique pas bien et vous pouvez également activer 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 

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 enregistré).

utiliser avec des guillemets

ex: adb shell "svc wifi enable"

cela fonctionnera 🙂