23 votes

Utilisation de la logique OR dans les contextes pour Tasker

Disons que je veux créer un contexte dans lequel le SSID d'une connexion WiFi est soit 'ABC', soit 'B'. ou "XYZ".

Je vois que je peux créer deux contextes, mais il semble que la logique ET soit appliquée entre les deux, de sorte que pour obtenir des mots, je dois être à proximité de 'ABC' et de 'XYZ'.

Comment faire en sorte que le contexte soit l'un ou l'autre, et non les deux ?

2voto

Winter Dragoness Points 121

Pour prendre en charge mon oreillette Bluetooth, je souhaitais activer le Bluetooth lorsque je me trouvais dans l'application Contacts OU lors d'un appel. Je pourrais le faire uniquement pendant un appel, mais je ne pourrais alors pas m'assurer que mon casque est connecté avant que l'autre partie ne décroche.

Aucune des solutions déjà postées ne fonctionnerait. Le fait de définir %BluetoothNeeded on lorsque vous êtes dans les Contacts ou en appel signifie que lorsqu'un appel commence, %BlueToothNeeded on est activé, mais que lorsque les Contacts deviennent un arrière-plan et que vous êtes en appel, %BlueToothNeeded off est désactivé et bluetooth s'éteint. En utilisant l'opération inverse, désactiver bluetooth quand il n'est PAS dans Contacts ET PAS en appel mais activer bluetooth comme tâche de sortie fonctionne presque, mais apparemment Tasker remarque la brève période où Contacts perd le statut de premier plan et l'appel n'a pas encore commencé et désactive bluetooth.

Voici donc ce qui a fonctionné pour moi, en se basant sur ce blog :

  1. Créez une tâche appelée Dummy avec une action de Tasks > Wait > 1ms
  2. Créez un profil appelé stateInCall avec une condition de State > Phone > Call > Type: Any . Reliez-le à la Dummy tâche.
  3. Créez un profil appelé stateInContacts avec une condition de State > Application > Contacts . Reliez-le à la Dummy tâche.
  4. Créez un profil appelé Bluetooth Needed avec une condition de State > Variable > Variable Value . Définir le nom sur %PACTIVE , Op to Matches et Valeur à *,stateInCall,*|*,stateInContacts,* . Selon la documentation de Tasker, %PACTIVE contient une liste de profils actifs séparés par des virgules. La liste commence et se termine également par une virgule pour faciliter la correspondance. Liez ce profil à une tâche appelée Bluetooth On qui active le bluetooth en utilisant le Net > Bluetooth > Set: On Action.
  5. Créez une tâche appelée Conditional Bluetooth Off avec les actions suivantes :
    1. Tâche > Attendre > 10 secondes
    2. Tâche > Si > %PACTIVE ne correspond pas *,stateInCall,*|*,stateInContacts,*
    3. Net > Bluetooth > Set : Off
    4. Task > End If
  6. Appuyez longuement sur le Bluetooth Needed Profil puis choisissez Properties . Décochez Restore Settings .
  7. Appuyez rapidement sur le Bluetooth Needed Profil jusqu'à la Bluetooth On La tâche apparaît en dessous, dans la colonne de droite. Appui long Bluetooth On et choisissez Add Exit Task alors choisissez Conditional Bluetooth Off .

Conditional Bluetooth Off attendra 10 secondes avant de vérifier une nouvelle fois que ni stateInCall ni stateInContacts sont vraies, auquel cas le bluetooth sera désactivé. Sinon, il laisse le bluetooth activé et lorsque les deux conditions suivantes sont remplies stateInCall y stateInContacts sortie plus tard, il fera son attente de 10 secondes et vérifiera à nouveau.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X