Parece que una de las funciones de Android O 8.0 es la capacidad de habilitar Wi-Fi automáticamente cuando estás cerca de una red guardada.
¿Se puede lograr esto a través de tasker hoy?
Agregar perfil> Estado> Red> Wifi cercano (como en estas preguntas aquí y aquí )
Ingrese el(los) nombre(s) de la red SSID / Seleccione las redes actualmente en el rango
Esto funciona uno a la vez, pero idealmente, podría extraer de la lista actual de redes WiFi guardadas/configuradas. Android mantiene una lista de redes guardadas previamente:
P : ¿Pero hay alguna forma de recuperar mediante programación todos los nombres de red guardados y establecerlos como una variable?
Nota : existen algunas aplicaciones como SmartWifiToggler , basadas en GPS, pero prefiero lograrlo a través de tasker si es posible.
Tuve 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 wifi guardados con funciones predeterminadas de Tasker.
Entonces, con respecto a su P: ¿Pero hay alguna forma de recuperar mediante programación todos los nombres de red guardados y establecerlos como una variable?
R: Sí, existe, utilizando la acción Tasker de tipo Código -> Función Java (consulte también la función $getConfiguredNetworks en el proyecto vinculado):
1.) Use la función Code Java para obtener WifiManager de CONTEXT
2.) Use la función Code Java para obtener redes configuradas desde WifiManager
3.-6.) Use el reemplazo de búsqueda variable para obtener los SSID de las redes configuradas usando expresiones regulares
7.-8.) Establecer variable para ser verificada por Tasker Wifi Near State
9.) (Opcional) Activar los pasos 1-8 automáticamente
Acciones detalladas de Tasker:
1.) Función Java:
a) Clase u objeto = CONTEXTO
b) Function=getSystemService{Object}(String) <seleccione usando el ícono de lupa y desplácese hacia abajo o use el filtro en la parte inferior de la pantalla, preste atención para no elegir la versión (Clase)>
c) Param=wifi
d) Retornar{Objeto}=(Gestor Wifi) wifiman
--> el resultado en la vista Tasker debería verse así: (WifiManager) wifiman = CONTEXT.getSystemService(wifi)
2.) Función Java:
a) Clase u objeto = wifiman
b) Función=getConfiguredNetworks{Lista}()
c) Retornar{Lista}=%get_configured_networks
--> el resultado en la vista Tasker debería verse así: %get_configured_networks = wifiman.getConfiguredNetworks()
Extraiga los SSID, hay muchas maneras, lo hice recorriendo la lista
3.) Para: Variable %get_configured_networks Elementos %configured_network
Elimine todo de la variable que no sea el SSID usando una expresión regular
4.) Reemplazo de búsqueda variable:
a) Variable=%red_configurada
b) Search=(?:.|\n)*SSID:\s*"(.*)"(?:.|\n)* <esta expresión regular capturará el nombre SSID en el grupo de captura 1>
c) Reemplazar Coincidencias=verdadero
d) Reemplazar con = $ 1
Agregar SSID a la matriz
5.) Array Push: Variable Array %ssids Posición 1 Valor %configured_network
Bucle final
6.) Terminar por
Unir los SSID con / como separador para adaptarse a Taskers wifi cerca de la sintaxis SSID1/SSID2/.../SSIDn
7.) Unión variable %ssids Unión /
Establezca la variable global para que sea verificada por Taskers Wifi Near State
8.) Nombre de conjunto de variables %SavedWifis a %ssids
Entonces, una vez hecho esto, se puede usar un Wifi Cercano %SavedWifis. Pero después de haber agregado un nuevo Wifi o eliminado uno anterior, debe actualizar el valor nuevamente.
9.) Ejecute Taks para actualizar %SavedWifis regularmente (por ejemplo, según el evento de tiempo o cada vez que se conecte wifi), si alguien conoce una forma de reaccionar ante un evento 'savedWifisUpdated', hágamelo saber.
Echa un vistazo a la aplicación llamada IFTTT, creo que tienen algo así donde puedes configurarlo.
xavier_fakerat
mattm
KyleMit
KyleMit
KyleMit
xavier_fakerat
Kishan Patel
xavier_fakerat
xavier_fakerat