Использование логики ИЛИ в контексте для Tasker

23

Допустим, я хочу создать контекст, в котором SSID соединения WiFi имеет вид «ABC» или «XYZ».

Я могу видеть, где я могу создать 2 контекста, но кажется, что они обеспечивают логику AND между ними, поэтому, чтобы слова порядка были в непосредственной близости от «ABC» и «XYZ».

Как сделать так, чтобы контекст был, а не оба?

Zombies
источник

Ответы:

10

Укажите SSID в контексте Wi-Fi Connected. ABC/XYZ Это активирует контекст, если вы подключаетесь к ABC или XYZ,

Ссылка: http://tasker.dinglisch.net/userguide/en/matching.html

Дмитрий Селицкий
источник
2
решает именно эту проблему, но не то, что на самом деле задал вопрос
эндолит
20

Или, возможно, вы можете использовать «перевернутые» условия для выполнения противоположной задачи?

Если вы хотите запустить задачу, когда WiFi подключен ИЛИ, когда профиль: A неактивен, вы можете вместо этого установить контексты для «WiFi отключен» И «Профиль: A активен» как с установленным флажком «инвертировано», так и настроить Задача, которая делает противоположное, если это возможно.

Это в основном работает из-за:

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

стоик
источник
3
Этот ответ хорош, потому что он более общий. То есть он работает с типами контекста, отличными от «Wifi Connected». Например, я хотел создать профиль, чтобы переводить телефон в беззвучный режим, когда он подключен к моим часам Pebble или подключен к ним. Самый простой способ сделать это - создать профиль «не подключен к Pebble и не подключен», который отключает тихий режим при входе и включает тихий режим при выходе. Законы Деморгана FTW.
Лоуренс Гонсалвес
4

Вы можете сделать свое действие зависимым от переменной "% condition = true", а затем создать два разных профиля:

  • профиль a: установить условие в "true"
  • профиль b: установить условие на «истина»

ваш профиль: если переменная "условие" = истина, то ... и там ваша задача выхода

Но было бы неплохо, если бы авторы усилили Tasker для этого ... :)

Chrissss
источник
2
Этот метод вызывает проблемы, когда условие может быть установлено как истинное или ложное как для профиля a, так и для b одновременно. Например, я хотел включить Bluetooth во время разговора или в приложении «Контакты». Я установил% BluetoothNeeded = 1 в любом случае и очищаю при выходе из любого случая. Во время разговора приложение «Контакты» становится фоновым и, как правило, приостанавливается для экономии памяти, что сбрасывает% BluetoothNeeded, так что bluetooth отключается, отключая мою гарнитуру Bluetooth во время разговора.
Крис Драгон
4

просто опубликовать мое решение этой проблемы, если кто-нибудь когда-нибудь придет сюда:

создать профиль для каждого условия в операторе или при вводе% Reasons + = 1 при выходе% Reasons - = 1

создайте профиль с условием% причин> 0 и необходимыми задачами входа и выхода

ура!

Kuba
источник
2

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

terry1769
источник
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, Op в 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 секунд и проверить еще раз.

Крис Дракон
источник