4 votos

Activar automáticamente el WiFi cuando estés cerca de una red guardada

Parece que una de las características que saldrán en Android O 8.0 es la posibilidad de Activar automáticamente el WiFi cuando estés cerca de una red guardada

Android O - Auto Enable Wifi

¿Se puede lograr esto a través de Tasker hoy en día?

  1. Añadir perfil > Estado > Red > Wifi Near (como en estas preguntas aquí y aquí )

    Profile > State > Net > Wifi Near

  2. Introducir el nombre de la red SSID / Seleccionar las redes actualmente en el rango

    SSID Network Names

  3. Esto funciona de uno en uno, pero lo ideal sería poder tirar de la lista actual de redes WiFi guardadas/configuradas. Android mantiene una lista de redes guardadas previamente:

    Saved Networks

Q : Pero, ¿hay alguna manera de recuperar mediante programación todos los nombres de red guardados y establecerlos como una variable?

Nota : Existen algunas aplicaciones como SmartWifiToggler , basado en el GPS, pero prefiero realizarlo a través de tasker si es posible.

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.

3voto

Simon Puntos 31

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. enter image description here

0voto

The Legend Puntos 11

Mira la aplicación que se llama IFTTT, creo que tienen algo así donde puedes configurar eso.

0 votos

Si bien esta respuesta puede ayudar, lamentablemente se queda corta en los detalles. ¿Qué deben hacer los lectores después de instalar IFTTT? En lugar de encontrar "algo así", ¿cómo configurar adecuadamente la aplicación para hacer lo que el solicitante quiere?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X