在Tasker上下文中使用OR逻辑


23

假设我要创建一个WiFi连接的SSID为“ ABC” “ XYZ” 的上下文。

我可以看到可以在其中创建2个上下文的地方,但是它似乎在两个上下文之间强制执行A​​ND逻辑,因此为了使单词正确,我必须同时靠近“ ABC”和“ XYZ”。

如何使上下文成为一个,而不是两者?

Answers:



20

还是可以使用“反转”条件来完成相反的任务?例如

如果要在连接WiFi或配置文件:A无效时运行任务,则可以设置“ WiFi断开连接”和“配置文件:A处于活动状态”,同时选中“反转”复选框,并设置一个如果可能,则执行相反的任务。

这主要是因为:

(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同时将条件设置为true或false时,此方法会引起问题。例如,我想在通话或“联系人”应用程序中打开蓝牙。我在两种情况下都设置%BluetoothNeeded = 1,并在两种情况下均退出时清除。当我在通话中时,“联系人”应用程序会变成背景,并且通常会暂停以节省内存,这会清除%BluetoothNeeded,因此蓝牙将关闭,从而在通话过程中切断了我的蓝牙耳机。
克里斯·龙

4

只要有人在这里发布我对这个问题的解决方案:

在or语句中为每个条件创建一个配置文件,在退出%Reasons时输入%Reasons + = 1-= 1

创建条件为%Reasons> 0以及所需的输入和退出任务的配置文件

干杯!


2

您将需要为每个上下文创建一个配置文件,并将其分别与操作配对。


3
嗯,这意味着我真的无法执行退出任务吗?
僵尸

2

为了支持我的蓝牙耳机,我的愿望是在“联系人”应用程序或通话中打开蓝牙。我只能在通话中进行操作,但是在对方接听之前无法确保耳机已连接。

已经发布的解决方案都无法正常工作。在“联系人”或通话中设置%BluetoothNeeded表示打开通话时,它将%BlueToothNeeded设置为打开,但是当Contacts成为通话背景时,它将%BlueToothNeeded设置为关闭并且蓝牙关闭。使用逆操作,当“不在联系人中”和“不在呼叫中”时关闭蓝牙,但由于退出任务几乎可以工作而打开蓝牙,但是显然塔斯克注意到短暂的一段时间,即“联系人”失去前台状态并且呼叫尚未开始并打开蓝牙关。

因此,根据此博客对我有用

  1. 创建一个名为DummyAction的任务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使用“ Net > Bluetooth > Set: On操作” 打开蓝牙。
  5. Conditional Bluetooth Off使用以下操作创建一个名为的任务:
    1. 任务>等待> 10秒
    2. 任务>如果> %PACTIVE不匹配*,stateInCall,*|*,stateInContacts,*
    3. 网络>蓝牙>设置:关
    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是真实的,这时它会关闭蓝牙。否则,它会保留蓝牙,当两者都退出stateInCallstateInContacts稍后退出时,它将等待10秒钟,然后再次检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.