Tenía el mismo problema y finalmente encontré un enlace a este proyecto: https://www.reddit.com/r/tasker/comments/8p0ywt/project_share_switching_to_saved_wifi/ El proyecto en sí hace un poco más, pero muestra una forma de obtener los wifis guardados con las características predeterminadas de Tasker.
En cuanto a tu pregunta: ¿hay alguna forma de recuperar mediante programación todos los nombres de red guardados y establecerlos como una variable?
R: Sí, lo hay, utilizando la acción Tasker de tipo Código -> Función Java (véase también la función $getConfiguredNetworks en el proyecto vinculado):
1.) Utilizar la función Java del código para obtener el WifiManager del CONTEXTO
2.) Utilizar la función Java Code para obtener las redes configuradas desde WifiManager
3.-6.) Usar la búsqueda de reemplazo de variables para obtener los SSID de las redes configuradas usando una expresión regular
7.-8.) Establecer la variable a comprobar por Tasker Wifi Near State
9.) (Opcional) Activar automáticamente los pasos 1-8
Acciones detalladas de Tasker:
1.) Función Java:
a) Clase u objeto=CONTEXT
b) Function=getSystemService{Object}(String) <seleccionar usando el icono de la lupa y desplazarse hacia abajo o utilizar el filtro en la parte inferior de la pantalla, prestar atención a no elegir la versión (Clase)>
c) Param=wifi
d) Return{Object}=(WifiManager) wifiman
--> el resultado en la vista Tasker debería ser así: (WifiManager) wifiman = CONTEXT.getSystemService(wifi)
2.) Función Java:
a) Clase u objeto=wifiman
b) Function=getConfiguredNetworks{List}()
c) Return{List}=%get_configured_networks
--> el resultado en la vista de Tasker debería ser así: %get_configured_networks = wifiman.getConfiguredNetworks()
Extraer SSIDs, hay muchas formas, yo lo hice haciendo un bucle sobre la lista
3.) Para: Variable %get_configured_networks Elementos %configured_network
Elimina todo lo que no sea el SSID de la variable utilizando una expresión regular
4.) Reemplazo de búsqueda de variables:
a) Variable=%red_configurada
b) Search=(?:.| \n )*SSI D:\s *"(.*)"(?:.| \n )* <esta regex capturará el nombre del SSID en el grupo de captura 1>
c) Reemplazar coincidencias=true
d) Sustituir por=$1
Añadir SSID a la matriz
5.) Array Push: Variable Array %ssids Posición 1 Valor %red_configurada
Fin del bucle
6.) Fin para
Unir los SSIDs con / como separador para encajar Taskers wifi cerca de la sintaxis SSID1/SSID2/.../SSIDn
7.) Variable Join %ssids Joiner /
Establecer la variable global que será comprobada por Taskers Wifi Near State
8.) Nombre de la variable %SavedWifis To %ssids
Así que una vez hecho esto, se puede utilizar un Wifi Near %SavedWifis. Pero después de añadir un nuevo Wifi o eliminar uno antiguo, es necesario actualizar el valor de nuevo.
9.) Ejecutar Taks para refrescar %SavedWifis regularmente (por ejemplo basado en un evento de tiempo o cada vez que se conecte el wifi), si alguien conoce una forma de reaccionar en un evento 'savedWifisUpdated', por favor hágamelo saber.
0 votos
Si no me equivoco, no tienes que especificar necesariamente el punto de acceso inalámbrico, de esta manera todos los puntos de acceso inalámbricos cercanos se consideran (con uno que tiene la señal más fuerte elegido) dado que se guardan en la configuración del sistema Android
0 votos
¿En qué se diferencia el uso de las señales WiFi para determinar si debe "activar el WiFi" de tener el WiFi activado para empezar? Utilizará las redes WiFi guardadas cuando estén disponibles, y explorará en segundo plano cuando no esté cerca de una red guardada.
0 votos
@xavier_fakerat, el objetivo es activar el WiFi cuando esté cerca de alguna red que tenga guardada y desactivarlo en cualquier otro lugar.
0 votos
@mattm, el problema es que cuando tengo el WiFi activado mientras ando por ahí, a menudo se queda atascado en una pantalla de inicio de sesión e interrumpe el acceso inalámbrico hasta que me conecto o desactivo el wifi. En general me resulta más fácil tenerlo apagado a no ser que esté en casa (o lista de lugares similares donde confío en el WiFi).
0 votos
@mattm, pero ahora me estoy dando cuenta de que sólo se conecta a esas redes bloqueadas por el inicio de sesión porque ellas mismas forman parte de mi lista de redes guardadas. Tendría que olvidarme de ellas, o nombrar individualmente las redes que quiero habilitar siempre el WiFi
0 votos
Sí, entiendo tu punto de vista, por lo que quieres una solución en la que guardes los APs inalámbricos preferidos como una especie de variable, ¿verdad? De lo contrario, se conectaría a uno que requiere el inicio de sesión. Déjame ver si puedo resolverlo aquí.
0 votos
Tasker sería difícil todavía me gustaría encontrar el código si es posible, pero siempre se puede ir para una aplicación de terceros
1 votos
Resulta que me he topado con un escenario similar al que deseas tener: Activación doble de WiFi en Tasker con la sentencia "or". Parece que hay muchas posibilidades para lograr esto ..... Te pondré al día una vez que termine de probar mi perfil en esto
0 votos
No me gusta repetir esa respuesta, pero sé que definitivamente satisface sus necesidades. Sólo tienes que leer acerca de la coincidencia de patrones, y utilizar eso para la lista blanca / lista negra de SSIDs. Saludos.