Usando lógica OR en contextos para Tasker


23

Digamos que quiero crear un contexto donde el SSID de una conexión WiFi sea 'ABC' o 'XYZ'.

Puedo ver dónde puedo crear 2 contextos, pero parece imponer la lógica AND entre los dos, por lo que, en orden, debo estar cerca de 'ABC' y 'XYZ'.

¿Cómo hacer que el contexto sea cualquiera, no ambos?

Respuestas:



20

¿O probablemente puede usar condiciones "invertidas" para hacer una tarea opuesta ?, por ej.

Si desea ejecutar una tarea cuando WiFi está conectado O cuando el perfil: A está inactivo, puede configurar contextos para "WiFi desconectado" Y "Perfil: A está activo" con la casilla de verificación "invertida" seleccionada y configurar una tarea que hace lo contrario, si eso es posible.

Esto básicamente funciona debido a:

(A OR B) = NOT((NOT A) AND (NOT B))


3
Esta respuesta es buena porque es más general. Es decir, funciona con tipos de contexto distintos a "Wifi conectado". Por ejemplo, quería crear un perfil para poner mi teléfono en modo silencioso siempre que esté conectado o conectado a mi reloj Pebble. La forma más fácil de hacer esto era crear un perfil de "no conectado a Pebble y no acoplado" que deshabilita el modo silencioso al entrar y habilita el modo silencioso al salir. Leyes de DeMorgan FTW.
Laurence Gonsalves

4

Puede hacer que su acción dependa de una variable "% condition = true" y luego hacer dos perfiles diferentes:

  • perfil a: establezca la condición en "verdadero"
  • perfil b: establezca la condición en "verdadero"

su perfil: si la variable "condición" = verdadero entonces ... y ahí va su tarea de salida

Pero sería bueno si los autores mejoraran la tarea para eso ... :)


2
Este método causa problemas cuando la condición puede establecerse como verdadera o falsa en ambos perfiles a y b al mismo tiempo. Por ejemplo, quería activar Bluetooth cuando estaba en una llamada o en la aplicación Contactos. Configuré% BluetoothNeeded = 1 en cualquiera de los casos y lo borré cuando cualquiera de los casos sale. Mientras estoy en una llamada, la aplicación Contactos se pone en segundo plano y, por lo general, se suspende para ahorrar memoria, lo que borra% BluetoothNeeded para que el bluetooth se apague, cortando mis auriculares bluetooth durante la llamada.
Chris Dragon

4

simplemente publicando mi solución a este problema si alguien viene aquí:

cree un perfil para cada condición en la declaración o al ingresar% Motivos + = 1 al salir% Motivos - = 1

cree un perfil con la condición% Motivos> 0 y las tareas de entrada y salida requeridas

¡aclamaciones!


2

Deberá crear un único perfil para cada contexto y vincularlo a la acción individualmente.


3
¿Esto significa que realmente no podré tener una tarea de salida?
Zombies

2

Para admitir mis auriculares bluetooth, mi deseo era activar bluetooth cuando estoy en la aplicación Contactos O en una llamada. Podría hacerlo solo durante una llamada, pero no puedo asegurarme de que mis auriculares estén conectados antes de que la otra persona responda.

Ninguna de las soluciones ya publicadas funcionaría. Configurar% BluetoothNeeded activado cuando está en Contactos o en una llamada significa que cuando se inicia una llamada, activa% BlueToothNeeded pero luego, cuando Contactos se vuelve de fondo para estar en llamada, establece% BlueToothNeeded desactivado y bluetooth se desactiva. Usando la operación inversa, apague el bluetooth cuando NO esté en Contactos Y NO en la llamada, pero encienda el bluetooth como una tarea de salida que casi funciona, pero aparentemente Tasker nota el breve período en que Contactos pierde el estado de primer plano y la llamada aún no se ha iniciado y se vuelve bluetooth apagado.

Esto es lo que funcionó para mí, basado en este blog :

  1. Crear una tarea llamada Dummycon una acción deTasks > Wait > 1ms
  2. Cree un perfil llamado stateInCallcon la condición de State > Phone > Call > Type: Any. Enlace a la Dummytarea.
  3. Cree un perfil llamado stateInContactscon la condición de State > Application > Contacts. Enlace a la Dummytarea.
  4. Cree un perfil llamado Bluetooth Neededcon la condición de State > Variable > Variable Value. Establezca Nombre en %PACTIVE, Op Matchesy Valor *,stateInCall,*|*,stateInContacts,*. Según los documentos de Tasker,% PACTIVE contiene una lista separada por comas de Perfiles activos donde la lista también comienza y termina con una coma para facilitar la coincidencia. Enlace este perfil a una tarea llamada Bluetooth Onque activa Bluetooth mediante la Net > Bluetooth > Set: Onacción.
  5. Cree una tarea llamada Conditional Bluetooth Offcon las siguientes acciones:
    1. Tarea> Esperar> 10 segundos
    2. Tarea> Si> %PACTIVEno coincide*,stateInCall,*|*,stateInContacts,*
    3. Red> Bluetooth> Configurar: Desactivado
    4. Tarea> Finalizar si
  6. Mantenga presionado el Bluetooth Neededperfil y luego elija Properties. Deseleccionar Restore Settings.
  7. Presione rápidamente el Bluetooth NeededPerfil hasta que la Bluetooth OnTarea aparezca debajo de él, en la columna derecha. Mantenga presionado Bluetooth Ony elija Add Exit Task, luego elija Conditional Bluetooth Off.

Conditional Bluetooth Offespera 10 segundos antes de doble control que ni stateInCallni stateInContactsson verdaderas, momento en el que va a desactivar Bluetooth. De lo contrario, deja Bluetooth y de que cuando ambos stateInCally stateInContactssalida tarde, lo hará sus 10 segundos de espera y puedes volver a intentarlo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.