3 votos

Desactivar automáticamente el hotspot móvil cuando no hay ningún dispositivo conectado, utilizando Tasker

Estoy intentando crear una tarea que desactive automáticamente el hotspot móvil (tethering) cuando no haya ningún dispositivo conectado. He creado con éxito tareas similares para bluetooth y wifi, sin embargo wifi mobile hotspot parece que no puedo obtener información sobre cómo comprobar si hay clientes conectados actualmente o cuando no hay ningún cliente conectado. He investigado un poco, un consiguió una pista que este código :

ip neigh show dev wlan0  | grep -i -e reachable -e delay | grep 

puede dar información sobre los clientes actualmente conectados al hotspot.

Esta fue la salida en el terminal:

u0_a209@hws8701:/ $ su
 -i -e reachable -e delay | grep -o' ..\:..\:..'                              <
unknown option --  usage: grep [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZz] [-A num] [-B num] [-C[num]]
        [-e pattern] [-f file] [--binary-files=value] [--color=when]
        [-e pattern] [-f file] [--binary-files=value] [--color=when]
        [--context[=num]] [--directories=action] [--label] [--line-buffered]
        [pattern] [file ...]
[1] + Done                 ip neigh show dev wlan0 |
      Stopped (signal)     grep -i -e reachable -e delay |
      Done (2)             grep -o" ..\\:..\\:.."
2|root@hws8701:/ #

sin embargo no sé cómo manipular este código para obtener más información útil para crear una variable para cero clientes conectados .

0 votos

También estoy buscando una tarea para desactivar automáticamente el anclaje Wi-Fi cuando no hay dispositivos conectados. ¿Has conseguido que funcione correctamente?

0 votos

@JanEnglund Lo volveré a investigar y te informaré :)

1voto

Sree Menon Puntos 11

Sé que este es un hilo viejo, pero no encontré ninguna solución en ningún sitio cuando quise. Así que sólo la publicación de la solución para otros entusiastas.

Bien, acabo de añadir un perfil de tiempo con un intervalo de 5 minutos (elija el tiempo que más le convenga) como disparador.

He añadido una nueva tarea con las siguientes acciones:

A1:-

    Code > Run Shell

    Command:                     ip neigh show dev wlan0
    Store Output In:             %ipneigh
    Store Errors In:             %ipneigherr
    Continue Task after error:   Yes

A2:-

    Net > Wifi Tether

    Set:                         Off
    IF:
         %ipneigh !~ *REACHABLE*   AND
         %ipneigh !~ *STALE*       AND
         %ipneigh !~ *PROBE*       AND
         %ipneigh !~ *DELAY*   

PS : No conozco el funcionamiento de ip neigh mando. He implementado esto por ensayo y error. Pero funciona para mí y no estoy seguro de cualquier error todavía. Actualizaré con ediciones si encuentro o alguien comenta alguno.

0voto

xavier_fakerat Puntos 1

He encontrado una solución que funciona parcialmente a la pregunta.

Verás por qué digo parcial:

Aquí está la tarea para la desconexión automática del hotspot móvil, por ejemplo, Hotspot Control

  • A1: Código >> Ejecutar Shell >> [Comando: ip -s -s neigh flush all ] (Borrar la caché ARP)
  • A2: Tarea >> Espera [Tiempo: 15 segundos] (Espere a que los dispositivos conectados hagan ping)
  • A3: Código >> Ejecutar Shell >> [Comando: ip neigh show dev wlan0 (Almacenar la salida en: %Clients Almacenar los errores en: %Error )]
  • A4: Tarea >> Si [Condición : %Clients no está fijado] (no hay ningún dispositivo conectado)
  • A5: Red >> Anclaje WiFi >> [Configurar: Desactivado]
  • A6: Tarea >> Otra (no apagues el hotspot móvil)
  • A7: Tarea >> Parada
  • A8: Variables >> Borrado de variables [Nombre: %Clients ]
  • A9: Tarea >> End If

enter image description here

Captura de pantalla (haga clic en la imagen para ampliarla)

Ahora para el perfil/disparador me encontré con pequeños problemas finalmente decidí probar esto como beta:

Primero

  • Estado >> Variables >> Valor de la variable [Condiciones: %Tether ~ * wifi* ] (Si el wifi tethering está activo)

Tarea de entrada: Control de zonas activas

Salir de la tarea : Tarea anónima (Desactivar WiFi Tether)

Perfil alternativo

  • Tiempo >> 5 minutos
  • Valor de la variable: %Error se establece (es decir, comprueba si no hay ningún dispositivo conectado al hotspot cada 5 minutos)

Limitaciones

  • La tarea funciona perfectamente (es decir, apaga automáticamente el hotspot cuando no hay ningún dispositivo conectado) pero sólo en primera instancia. Una vez que el %Clients está poblada, los siguientes disparos no funcionarán aunque haya incluido explícitamente la función de limpieza de la variable ( Action 8 arriba)

  • No he podido encontrar un perfil adecuado pero mientras tanto el primer perfil funciona aunque con errores a veces.

Iam todavía tratando de encontrar la mejor manera (no buggy) de hacer esto, así que sólo puse esto como una solución parcial, todavía estoy esperando mejores respuestas por lo tanto No voy a aceptarlo:)

Créditos especiales y agradecimientos

Esta obra se inspiró enormemente en usuario341464 , Calamar y Señor del fuego (Tuve que aprender de sus tutoriales, y hacer ligeros ajustes para satisfacer las necesidades específicas, pero no es perfecto todavía)

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