web-dev-qa-db-fra.com

Comment désactiver le Wifi via la BAD?

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

44
Nefariis

Utilisation de "svc" via ADB (root requis):

Activer:

adb Shell su -c 'svc wifi enable'

Désactiver:

adb Shell su -c 'svc wifi disable'

Utilisation d’é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 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 .

89
Jared Burrows

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

adb Shell svc wifi enable|disable
43
Berkk

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
24
Ruslan
  1. przejdź do lokalizacji Android/android-sdk/platform-tools
  2. shift+ kliknij prawym przyciskiem myszy
  3. autres cmd tutaj i wpisz następujące polecenia

    1. adb Shell
    2. suname__
    3. svc wifi enable/disable
  4. gotowe !!!!!

5
Musab
adb Shell "svc wifi enable"

Cela a fonctionné et permet d’agir en arrière-plan sans ouvrir d’option connexe !!

3
Arun

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

2
Igor Maia Romcy

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

0
Treviño

utiliser avec des citations

ex:adb Shell "svc wifi enable"

ça va marcher :)

0
SanalBathery