Використання АБО логіки в контекстах для Tasker


23

Скажімо, я хочу створити контекст, де SSID з’єднання Wi-Fi або "ABC", або "XYZ".

Я бачу, де я можу створити 2 контексти, але, здається, застосовується І логіка між ними, тож для того, щоб слова повинні знаходитись поблизу як "ABC", так і "XYZ".

Як зробити так, щоб контекст був або тим, і іншим?

Відповіді:



20

Або, ймовірно, ви можете використовувати "перевернуті" умови, щоб зробити протилежне завдання? Наприклад,

Якщо ви хочете виконати завдання, коли Wi-Fi підключено АБО, коли профіль: A неактивний, ви можете замість цього встановити контексти для "WiFi відключено" І "Профіль: А активний", як із встановленим прапором "перевернутий", і встановити завдання, яке робить навпаки, якщо це можливо.

Це в основному працює через:

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


3
Ця відповідь приємна, тому що вона більш загальна. Тобто він працює з типами контексту, відмінними від "Wifi Connected". Наприклад, я хотів створити профіль, щоб перевести телефон у безшумний режим, коли він або з'єднаний з моїм годинником Pebble. Найпростіший спосіб зробити це - створити профіль "не підключений до Pebble і не докований" профіль, який вимикає беззвучний режим при вході, і дозволяє безшумний режим при виході. Закони DeMorgan FTW.
Лоранс Гонсальвес

4

Ви можете зробити свою дію залежною від змінної "% condition = true", а потім зробити два різних профілі:

  • профіль a: встановіть умову на "true"
  • профіль b: встановіть умову "true"

ваш профіль: якщо змінна "condition" = true тоді ... і там іде ваше завдання виходу

Але було б добре, якби автори посилили завдання для цього ... :)


2
Цей метод спричиняє проблеми, коли умова може бути встановлена ​​істинною або хибною одночасно і профілями a, і b. Наприклад, я хотів увімкнути Bluetooth через дзвінок або в додатку "Контакти". Я встановив% BluetoothNeeded = 1 в будь-якому випадку та зрозумів, коли виходить будь-який випадок. Під час дзвінка додаток "Контакти" стає фоновим і, як правило, призупиняється для збереження пам'яті, яка очищає% BluetoothNeeded, тому Bluetooth вимикається, ріжучи мою гарнітуру Bluetooth під час дзвінка.
Кріс Дракон

4

я просто розміщую своє рішення цієї проблеми, якщо хто-небудь коли-небудь приходить сюди:

створіть профіль для кожної умови в або виписці при введенні% Причини + = 1 при виході% Причини - = 1

створити профіль із умовою% Причини> 0 та необхідними завданнями введення та виходу

ура!


2

Вам потрібно буде створити єдиний профіль для кожного контексту і з’єднати його з дією окремо.


3
Гм, це означає, що я справді не зможу мати завдання виходу?
Зомбі

2

Щоб підтримати гарнітуру Bluetooth, моє бажання було ввімкнути Bluetooth, коли я перебуваю в додатку Контакти АБО у дзвінку. Я міг би це робити лише під час дзвінка, але тоді я не можу переконатися, що моя гарнітура підключена до того, як підійде інша сторона.

Жодне з опублікованих рішень не працює. Якщо ввімкнути% BluetoothNeeded у режимі "Контакти" або під час дзвінка, це означає, що коли виклик починається, він встановлює% BlueToothNeeded, але потім, коли "Контакти" стає фоном для дзвінка, він вимикає% BlueToothNeeded і Bluetooth вимикається. Використовуючи зворотну операцію, вимкніть Bluetooth, коли НЕ в Контакти та НЕ в дзвінку, але ввімкніть Bluetooth, оскільки завдання виходу майже працює, але, мабуть, Tasker помічає короткий період, коли Контакти втрачають стан переднього плану, а виклик ще не розпочався, і вимкнено Bluetooth вимкнено.

Отже ось що для мене спрацювало на основі цього блогу :

  1. Створіть завдання під назвою Dummy дієюTasks > Wait > 1ms
  2. Створіть профіль, викликаний stateInCallіз умовоюState > Phone > Call > Type: Any . Зв’яжіть це із Dummyзавданням.
  3. Створіть профіль, викликаний stateInContactsіз умовоюState > Application > Contacts . Зв’яжіть це із Dummyзавданням.
  4. Створіть профіль, викликаний Bluetooth Neededіз умовою State > Variable > Variable Value. Установіть ім'я на %PACTIVE, опцію Matchesта значення на *,stateInCall,*|*,stateInContacts,*. Згідно з документами Tasker,% PACTIVE містить список активних профілів, розділених комами, де список також починається і закінчується комою, щоб полегшити збіг. Зв’яжіть цей профіль із заданим завданнямBluetooth On яке вмикає Bluetooth за допомогою Net > Bluetooth > Set: Onдії.
  5. Створіть завдання під назвою Conditional Bluetooth Off за допомогою таких дій:
    1. Завдання> Зачекайте> 10 секунд
    2. Завдання> Якщо> %PACTIVEне відповідає*,stateInCall,*|*,stateInContacts,*
    3. Мережа> Bluetooth> Встановити: вимкнено
    4. Завдання> Кінець Якщо
  6. Довго натискайте на Bluetooth Neededпрофіль, а потім вибирайте Properties. Зніміть прапорець Restore Settings.
  7. Швидко натискайте на Bluetooth Neededпрофіль, поки Bluetooth Onзавдання не з’явиться під ним, у правій колонці. Натисніть Bluetooth Onі виберіть Add Exit Task, потім виберіть Conditional Bluetooth Off.

Conditional Bluetooth Offзачекає 10 секунд, перш ніж подвійно перевірити, що ні це, stateInCallні stateInContactsправда, після чого він вимкне Bluetooth. В іншому випадку він залишає Bluetooth увімкнутим, і коли обидва stateInCallта stateInContactsвийдуть пізніше, він зробить своє 10-секундне зачекання та ще раз перевірку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.