TaskerのコンテキストでORロジックを使用する


23

WiFi接続のSSIDが「ABC」または「XYZ」のいずれかであるコンテキストを作成するとします。

2つのコンテキストを作成できる場所はわかりますが、2つのコンテキストの間にANDロジックを適用するように見えるため、単語を並べるには「ABC」と「XYZ」の両方に近接している必要があります。

コンテキストを両方ではなくどちらかにする方法は?

回答:



20

または、「逆」条件を使用して反対のタスクを実行できますか?

WiFiが接続されているとき、またはプロファイル:Aが非アクティブのときにタスクを実行する場合は、代わりに「WiFiが切断されている」および「プロファイル:Aがアクティブ」のコンテキストを「反転」チェックボックスをオンにしてセットアップし、可能であれば、反対のことを行うタスク。

これは基本的に次の理由で機能します。

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


3
より一般的なので、この答えはいいです。つまり、「Wifi接続」以外のコンテキストタイプで動作します。たとえば、Pebbleウォッチにドッキングまたは接続されているときは常に、電話をサイレントモードにするプロファイルを作成したいと考えていました。これを行う最も簡単な方法は、入力時にサイレントモードを無効にし、終了時にサイレントモードを有効にする「Pebbleに接続せず、ドッキングしない」プロファイルを作成することでした。デモルガンの法則FTW。
ローレンスゴンサルベス

4

アクションを変数 "%condition = true"に依存させてから、2つの異なるプロファイルを作成できます。

  • プロファイルa:条件を「true」に設定
  • プロファイルb:条件を「true」に設定

あなたのプロファイル:変数 "condition" = trueの場合...そして終了タスクがあります

しかし、著者がそのためにタスク担当者を強化するとしたらいいでしょう... :)


2
この方法は、プロファイルaとbの両方によって条件が同時にtrueまたはfalseに設定される場合に問題を引き起こします。たとえば、通話中または連絡先アプリでBluetoothをオンにしたかった。いずれの場合も%BluetoothNeeded = 1を設定し、いずれかの場合が終了するとクリアします。通話中に連絡先アプリはバックグラウンドになり、通常はメモリを節約するために一時停止されます。これにより%BluetoothNeededがクリアされ、Bluetoothがオフになり、通話中にBluetoothヘッドセットが切断されます。
クリスドラゴン14

4

誰かがここに来た場合、この問題に対する私の解決策を投稿するだけです:

Enter%Reasonsのorステートメントの各条件のプロファイルを作成します。出口%Reasonsで+ = 1-= 1

条件%Reasons> 0および必要な開始および終了タスクを持つプロファイルを作成します

乾杯!


2

コンテキストごとに単一のプロファイルを作成し、それを個別にアクションにペアリングする必要があります。


3
うーん、これは本当に終了タスクを持つことができないことを意味しますか?
ゾンビ

2

Bluetoothヘッドセットをサポートするために、連絡先アプリまたは通話中にBluetoothをオンにしたかったのです。通話中にしかできませんでしたが、相手が応答する前にヘッドセットが接続されていることを確認できません。

既に投稿されているソリューションはどれも機能しません。連絡先または通話中に%BluetoothNeededをオンに設定すると、通話の開始時に%BlueToothNeededがオンに設定されますが、連絡先がバックグラウンドになって通話中になると、%BlueToothNeededがオフになり、Bluetoothがオフになります。逆の操作を使用して、連絡先と通話中でないときにブルートゥースをオフにしますが、終了タスクがほぼ機能するためブルートゥースをオンにしますが、明らかに連絡先がフォアグラウンドステータスを失い、通話がまだ開始されず、ブルートゥースになるターンタスカーオフ。

このブログに基づいて、ここで私のために働いたものがあります:

  1. Dummyアクションで呼び出されるタスクを作成しますTasks > Wait > 1ms
  2. stateInCall条件で呼び出されるプロファイルを作成しますState > Phone > Call > Type: AnyDummyタスクにリンクします。
  3. stateInContacts条件で呼び出されるプロファイルを作成しますState > Application > ContactsDummyタスクにリンクします。
  4. Bluetooth Needed条件で呼び出されるプロファイルを作成しますState > Variable > Variable Value。Nameを%PACTIVEOpにMatches、Valueをに設定し*,stateInCall,*|*,stateInContacts,*ます。Taskerのドキュメントによると、%PACTIVEにはアクティブなプロファイルのコンマ区切りリストが含まれており、リストもコンマで始まり、マッチングを容易にするためにコンマで終了します。このプロファイルBluetooth Onを、Net > Bluetooth > Set: Onアクションを使用してBluetoothをオンにするというタスクにリンクします。
  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 Off10秒待機してから、true stateInCallでもstateInContactstrue でもないことを再確認し、その時点でbluetoothをオフにします。そうでなければ、それはいつの両方でBluetoothの葉stateInCallstateInContacts後で、それはその10秒の待機を行いますし、もう一度確認して終了します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.