条件が整うとき
目次
トリガ条件の絞り込み
全ての条件がトリガにもフィルタにもなる、ということが、設定を難しくしている場合があります。
たとえば、家と職場では常に端末を充電台に置いていて、家で充電台から外した場合はほぼ間違いなくWEBを使う、としましょう。
「家で 充電中でなかったら」という条件で、WEB ブラウザを起動するようなイベントを作ります。
しかし、これでは家に「帰ってきた」だけで、WEB ブラウザが起動してしまいます。
端末を持ちあるいているときは、充電中ではないため「充電中でない」がフィルタとして働き、「家で」がトリガとして働くためです。
いろいろと複雑な設定をして目的通りの動作を作ることはできますが、「家で」はトリガにならない、という設定ができればそれで解決です。
2013.4.24 公開のβ版では、そのような設定ができるようになりました。(機能が付いたのは 4.21版ですが、バグで動作していませんでした)
個別の条件を「フィルタ専用」に指定できます。フィルタになった条件によって、イベントが動作することはありません。
より詳細に言うと、この設定はイベントごとです。あるイベントで「家で」をフィルタ専用にしても、別のイベントではちゃんと「家で」の条件でイベントを動かすことができます。
また、指定は「条件の種類」ごとです。いくつかの条件は、同じ種類で複数書くことができますが、まとめてフィルタ専用になります。
設定方法は簡単で、「高度機能」の「トリガ条件の絞り込み」をタップするだけ。
これで、使われている条件がリストアップされるはずです。
通常は、すべての条件に「チェック」が入っています。このチェックは、トリガとして使用される、という意味です。
チェックを外すと、その条件はフィルタ専用になります。
「チェックするとフィルタ専用」という意味の文章になっていますが、「チェックを外すとフィルタ専用」です。
次のバージョンには正しい訳が入るように、作者さんに送っておきます。
例外
ほぼすべての「条件」が、トリガにもフィルタにもなりますが、先に書いたように例外がいくつかあります。
「テザリング」は、テザリングの有効/無効をフィルタとして使うことはできますが、単体でトリガとして使うことはできません。
つまり、「テザリングの開始」や「終了」をきっかけに動作するイベントを作ることはできない、ということです。
「場所を出た」は、トリガにはなりますが、フィルタになりません。名前どおり「出た」瞬間にしか整わないためです。
フィルタとして使いたい場合は、「場所に居ない」を使います。こちらは、トリガにもフィルタにもなります。トリガとして整うタイミングは、「場所を出た」と同じです。
対するイベントは、「入った/居る」となっているので、トリガにもフィルタにもなれます。
ちなみに、「出た」をフィルタ専用にする…のは、もちろん無意味です。
実際の使いどころ
「すでに条件が整っているときは、すべてがフィルタとなってしまい、イベントは再度実行されることはない」というのは、時としてプログラムを困難にします。
たとえば、アプリAを起動中は、WiFi を使いたいとします。
「現在アプリがAなら」 WiFi をオンにし、「現在アプリがAでないなら」ら WiFi をオフにするイベントを作りました。
これとは別のイベントで、画面を消したら省電力のために WiFi を切断するようにしていたとします。
アプリAを起動したら、WiFi がオンになります。
そのまま画面を消したら、WiFi がオフになります。
再度画面を点けたら、アプリAを使っているのに、WiFi は使えない状態です。
「現在アプリがAなら」の条件はずっと整ったままなので、新たに動作が起こることはないのです。
こんなとき、「現在アプリがAなら」のイベントに「画面オンなら」の条件を併記します。
操作しているときは、当たり前ですが画面はオンです。こちらはフィルタとして働きます。
アプリAが起動すると、WiFi をオンにします。
画面消去時に、現在アプリがAのままなら、こちらがフィルタとして働きます。
画面をオンにすると、WiFi をオンにします。
もちろん、画面オン時にA以外のアプリを使っていた場合は、WiFi がオンになることはありません。
WiFi を使いたいのはアプリAなので、これで正常動作。
これで目的達成です。
自分が快適に使える環境を作ろうとすると、時には非常に複雑なイベント群を作らないといけないこともあります。
しかし、条件をうまく組み合わせて狙い通りに動作を起こせたときの満足感は、格別です。
役に立ちそうなイベントを組み立てられたら、ぜひ教えてください。