¿Cómo puedo habilitar los datos móviles periódicamente con Tasker?

Probé juicedefender y hace exactamente lo que quiero, pero como ya tengo Tasker ejecutándose todo el tiempo, estoy buscando una receta de Tasker.

Me gustaría lograr el siguiente comportamiento:

  • Deshabilite los datos móviles cuando la pantalla esté bloqueada y no haya transferencia. Si hay una transferencia en curso, permita que se complete antes de desactivar los datos móviles. Habilite los datos móviles solo en intervalos periódicos de 15 minutos.

Respuestas (1)

Un perfil bastante cercano se describe en Tasker-Profile (Google-Translate variante en inglés aquí ). Intentaré dar un resumen aquí:

Activar/desactivar datos básicos

Tareas

Necesitará dos tareas para esto:

  1. habilitar datos móviles:
    • Red -> Sincronización automática (activado)
    • Red -> Datos móviles (activado)
  2. desactivar datos móviles:
    • Red -> Sincronización automática (activado)
    • Red -> Datos móviles (activado)

Probablemente puede omitir la parte de "Sincronización automática" (especialmente si Wifi entra en juego), lo mencioné solo para completar. Además, la variable Tasker -> PSAFE se puede utilizar para comprobar si el dispositivo está en modo de ahorro de energía ( ~ 1 ) o no ( !~ 1 ).

Condiciones

Estas son la parte más difícil. En cuanto al encendido/apagado de la pantalla, es fácil: Evento -> Pantalla -> Pantalla desbloqueada para pantalla activa, Evento -> Pantalla -> Pantalla apagada para pantalla apagada. La parte más difícil es verificar si hay transferencias aún en ejecución. No sé cómo hacerlo explícitamente , pero probablemente se pueda hacer implícitamente a través de la variable %PSAFE Tasker mencionada anteriormente : con una transferencia en ejecución, es menos probable que el dispositivo sea en modo de ahorro de energía. Probablemente necesites experimentar con esto. Conecte estas condiciones con las tareas apropiadas para crear perfiles.

Comprobaciones periódicas

Para esto, debe agregar una variable a las tareas anteriores: %LCD , que nos da el estado de la pantalla. Por lo tanto, en Variable -> Nombre del conjunto de variables =%LCD -- en 1. establecer en 1 (activado), en 2. en 0 (desactivado). Ahora cree un perfil adicional:

  • Tiempo: Repetir 15min
  • Estado -> Valor de la variable %LCD ~ 0
  • Estado -> Valor de la variable %PSAFE ~ 1

Por lo tanto, funciona los 15 minutos, pero solo cuando la pantalla está apagada y el modo de seguridad está activo. También necesitamos una tarea adicional:

  • Red -> Datos móviles: ON
  • Red -> Sincronización automática: ON
  • Tasker -> Espera: 1min
  • Red -> Sincronización automática: APAGADO
  • Red -> Datos móviles: APAGADO

Ajuste a sus necesidades.

Comprobación de posibles transferencias en curso

Nuevamente, no estoy seguro de cómo verificar si hay una transferencia en curso. Se puede encontrar una posible solución en Grupos de Google , pero no pude verificar esto. Aunque, como quizás quieras probarlo, este es el extracto básico:

Es un perfil que creé en mi Droid para experimentar con el concepto de ver los niveles de tráfico 3G.

Profile: Net Traf 3G (62)
Priority: 2 CoolDown: 0
Time:  Every 10m
State: Mobile Network [ 2G:On 3G:On 3G - HSPA:On 4G:On ]
Enter: Read3gTraf (63)
A1: Test [Type:File Name Data:/sys/class/net/ppp0 Store Result In:%tg_exists Continue     Task After Error:On] 
A2: Read Line [File:/sys/class/net/ppp0/statistics/rx_bytes Line:1 To Var:%TG_RX] Read Line [ %tg_exists Is Set ]
A3: Variable Set [Name:%TG_RX_CHG To:%TG_RX-%TG_RX_OLD Do Maths:On Append:Off] 
A4: Variable Set [Name:%TG_RX_OLD To:%TG_RX Do Maths:Off Append:Off] 
A5: Stop [With Error:Off] Stop [ %SCREEN ~ off ]
A6: Variable Set [Name:%TG_RX_RATE To:ceil(%TG_RX_CHG/1024) Do Maths:On Append:Off] 
A7: Notify [Title:3g traffic active Text:%TG_RX_RATE kb since last check Icon:<icon> Number:0 Permanent:Off] 

%TG_RX_RATE contendrá los kb recibidos en los últimos 10 minutos y se puede utilizar en una condición de Contexto.
Si mi teléfono está sentado, el tráfico de red de nivel de fondo es inferior a 20 kb por minuto. Navegando por la web, son 100 kb o mucho más por minuto. Su experiencia puede ser diferente.
Dado que /sys es realmente una carpeta virtual, la carpeta /sys/class/net/ppp0 solo existe cuando la interfaz 3G está activada. Cuando enciendo wifi, se crea el directorio /sys/class/net/tiwlan0 en su lugar.
(Entonces, al cambiar la ruta del directorio, también puedo ver el tráfico wifi).