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.
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.
0 votes
@mattm, le problème est que lorsque j'ai le WiFi activé lorsque je me promène, il reste souvent bloqué sur un écran de connexion et interrompt l'accès sans fil jusqu'à ce que je me connecte ou que je désactive le wifi. Je trouve généralement plus facile de le désactiver, sauf si je suis à la maison (ou dans une liste d'endroits similaires où j'ai confiance dans le WiFi).
0 votes
@mattm, mais je réalise maintenant qu'il ne se connecte à ces réseaux bloqués que parce qu'ils font eux-mêmes partie de ma liste de réseaux enregistrés. Je dois soit les oublier, soit nommer individuellement les réseaux que je veux toujours activer en WiFi.
0 votes
Oui, j'ai compris, donc vous voulez une solution de contournement où vous enregistrez les points d'accès sans fil préférés comme une sorte de variable, n'est-ce pas ? Sinon, il se connecterait à l'un d'eux qui nécessite une connexion. Laissez-moi vérifier si je peux le faire ici.
0 votes
Tasker serait encore difficile, je trouverais le code si possible, mais vous pouvez toujours opter pour une application tierce.
1 votes
Il se trouve que je suis tombé sur un scénario similaire à celui que vous souhaitez avoir : Tasker double l'activation du WiFi avec l'instruction "ou". Il semble qu'il y ait de nombreuses possibilités pour y parvenir. ..... Je vous informerai dès que j'aurai fini de tester mon profil sur ce point.
0 votes
Je n'aime pas répéter cette réponse, mais je sais qu'elle répond définitivement à vos besoins. Il suffit de se renseigner sur la correspondance des motifs et de l'utiliser pour mettre les SSID sur une liste blanche ou noire. A la vôtre !