107 votes

Comment désactiver le WiFi de manière programmatique sur un appareil Android ?

Je dois désactiver le WiFi un moment après avoir appuyé sur le bouton "Éteindre l'écran". Il y a un besoin pour cette application sur ma tablette car parfois j'oublie simplement d'éteindre le WiFi et cela décharge la batterie très rapidement. Elle se vide 10 fois plus vite que si je n'avais pas de WiFi. Y a-t-il une solution disponible en tant que fichier .apk? Puis-je suivre quand l'écran s'éteint et quand 5 minutes se sont écoulées? Puis-je désactiver le WiFi de manière programmée sur un appareil Android? Comment faire?

2 votes

Si c'est juste pour vous, alors Android a le paramètre "Politique de veille du WiFi" sous "Paramètres WiFi" -> "Avancé". Vous pouvez activer la désactivation du WiFi après 15 minutes.

0 votes

Je n'ai pas cette fonctionnalité, dans les paramètres avancés de mon WiFi, j'ai seulement la configuration du protocole (DNS, IP statique, MAC, etc.).

240voto

J. Maes Points 2561

Vous avez besoin des autorisations suivantes dans votre fichier manifeste :

Ensuite, vous pouvez utiliser le code suivant dans votre classe d'activité :

WifiManager wifiManager = (WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);
wifiManager.setWifiEnabled(false);

Utilisez le code suivant pour vérifier s'il est activé ou non :

boolean wifiEnabled = wifiManager.isWifiEnabled()

Vous trouverez un tutoriel intéressant sur le sujet sur ce site.

12 votes

Pourquoi le wake-lock est-il nécessaire pour cela?

0 votes

Oui, cela fonctionne sans WAKLE_LOCK et UPDATE_DEVICE_STATS, pourquoi ont-ils été inclus?

2 votes

Je suppose que les autorisations supplémentaires étaient simplement le résultat de la copie directe du code à partir du lien qu'il a fourni, mais même ainsi, UPDATE_DEVICE_STATS est réservé aux applications système uniquement, l'application ne compilera même pas avec cette autorisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X