4 votes

Activez automatiquement le WiFi lorsque vous êtes à proximité d'un réseau enregistré.

Il semblerait qu'une des fonctionnalités de la version 8.0 d'Android O soit la possibilité de Activez automatiquement le WiFi lorsque vous êtes à proximité d'un réseau enregistré.

Android O - Auto Enable Wifi

Cela peut-il être accompli par le biais de tasker aujourd'hui ?

  1. Ajouter un profil > État > Net > Wifi proche (comme dans ces questions aquí y aquí )

    Profile > State > Net > Wifi Near

  2. Entrer le(s) nom(s) de réseau SSID / Sélectionner les réseaux actuellement dans la gamme.

    SSID Network Names

  3. Cela fonctionne un par un, mais l'idéal serait de pouvoir utiliser la liste actuelle des réseaux WiFi enregistrés/configurés. Android conserve une liste des réseaux précédemment enregistrés :

    Saved Networks

Q : Mais existe-t-il un moyen de récupérer par programme tous les noms de réseau enregistrés et de les définir comme une variable ?

Nota : Il existe des applications comme SmartWifiToggler sur la base d'un GPS, mais je préférerais passer par Tasker si possible.

0 votes

Si je ne me trompe pas, vous ne devez pas nécessairement spécifier le point d'accès sans fil, de cette façon tous les points d'accès sans fil proches sont pris en compte (avec celui qui a le signal le plus fort choisi) étant donné qu'ils sont enregistrés dans les paramètres du système Android.

0 votes

En quoi le fait d'utiliser les signaux WiFi pour déterminer si vous devez "activer le WiFi" est-il différent du fait d'avoir le WiFi activé pour commencer ? Vous utiliserez les réseaux WiFi enregistrés lorsqu'ils sont disponibles et effectuerez un balayage en arrière-plan lorsque vous ne serez pas à proximité d'un réseau enregistré.

0 votes

@xavier_fakerat, le but est d'activer le WiFi lorsque je suis près d'un réseau que j'ai enregistré et de le désactiver partout ailleurs.

3voto

Simon Points 31

J'ai eu le même problème et j'ai finalement trouvé un lien vers ce projet : https://www.reddit.com/r/tasker/comments/8p0ywt/project_share_switching_to_saved_wifi/ Le projet lui-même fait un peu plus, mais montre une façon d'obtenir les wifis sauvegardés avec les fonctionnalités par défaut de Tasker.

En ce qui concerne votre question : existe-t-il un moyen de récupérer par programme tous les noms de réseaux enregistrés et de les définir comme une variable ?

R : Oui, il existe, en utilisant l'action Tasker de type Code -> Java Function (voir aussi la fonction $getConfiguredNetworks dans le projet lié) :

1.) Utiliser la fonction Java du code pour obtenir WifiManager à partir du CONTEXTE

2.) Utiliser la fonction Java Code pour obtenir les réseaux configurés à partir de WifiManager.

3.-6.) Utilisez la fonction de recherche et de remplacement de variables pour obtenir les SSID des réseaux configurés à l'aide d'une expression régulière.

7.-8.) Définir la variable à vérifier par le Tasker Wifi Near State

9.) (Facultatif) Déclencher automatiquement les étapes 1 à 8

Actions détaillées de Tasker :

1.) Fonction Java :

a) Classe ou objet = CONTEXTE

b) Function=getSystemService{Object}(String) <sélectionner en utilisant l'icône de la loupe et faire défiler vers le bas ou utiliser le filtre en bas de l'écran, attention à ne pas choisir la version (Class)>.

c) Param=wifi

d) Return{Object}=(WifiManager) wifiman

--> le résultat dans la vue Tasker devrait ressembler à ceci : (WifiManager) wifiman = CONTEXT.getSystemService(wifi)

2.) Fonction Java :

a) Classe ou objet=wifiman

b) Fonction=getConfiguredNetworks{List}()

c) Return{List}=%get_configured_networks

--> Le résultat dans la vue Tasker devrait ressembler à ceci : %get_configured_networks = wifiman.getConfiguredNetworks()

Extraire les SSID, il y a plusieurs façons, je l'ai fait en bouclant sur la liste

3.) Pour : Variable %get_configured_networks Éléments %configured_network

Supprimer tout ce qui n'est pas le SSID de la variable en utilisant une expression régulière.

4.) Recherche et remplacement de variables :

a) Variable=%configured_network

b) Recherche=(? :.| \n )*SSI D:\s *"(.*)"(? :.| \n )* <Cette expression rationnelle capturera le nom du SSID dans le groupe de capture 1>.

c) Replace Matches=true

d) Remplacer par=$1

Ajouter SSID au tableau

5.) Array Push : Variable Array %ssids Position 1 Valeur %configured_network

Fin de la boucle

6.) Fin pour

Joindre les SSID avec / comme séparateur pour s'adapter à la syntaxe de Taskers wifi near SSID1/SSID2/.../SSIDn

7.) Variable Join %ssids Joiner /

Définir la variable globale à vérifier par les Taskers Wifi Near State

8.) Nom du jeu de variables %SavedWifis To %ssids

Ainsi, une fois que cela est fait, un Wifi proche de %SavedWifis peut être utilisé. Mais après avoir ajouté un nouveau Wifi ou supprimé un ancien, vous devez à nouveau mettre à jour la valeur.

9.) Exécuter des Taks pour rafraîchir %SavedWifis régulièrement (par exemple en fonction de l'heure ou à chaque fois que le wifi est connecté), si quelqu'un connaît un moyen de réagir à un événement 'savedWifisUpdated', merci de me le faire savoir. enter image description here

0voto

Jorel Points 108

Regardez l'application IFTTT, je crois qu'ils ont quelque chose comme ça où vous pouvez le configurer.

0 votes

Si cette réponse peut aider, elle est malheureusement encore trop courte sur le plan des détails. Que doivent faire les lecteurs après avoir installé IFTTT ? Au lieu de trouver "quelque chose comme ça", comment configurer correctement l'application pour faire ce que le demandeur veut ?

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X