Taskerのプロファイルを一括ON/OFFするタスク(Androidアプリ)

スポンサーリンク

Taskerが動作してると、どうも挙動不審になるアプリがあったので、Taskerは止めずに有効にしてる全プロファイルをOFF、その逆をするタスクで対処したら改善されました。

そういえば、「バドミントン」の「ミントン」って何か響きがいいですよね!
バドミントンの話が出たら、「えっ?なにミントン?」とか聞いてみるとか、「あ~!あれ、5ミントンもやると疲れるよね!」とか適当に言ってみたり。

それは置いといて、たまにしか有効にしないプロファイルもあったので、有効になってるプロファイルだけON/OFFしてます。

有効になっているプロファイルのリストを保管し全てOFFにするタスクはこんな感じです(アホなやり方してたらごめんなさい)
scr_tasker_off_20140216_02
※ 全てのプロファイルをOFFすると再びONできないので、このプロファイルだけ生かしておきます。
この例だと 8. のところで、Taskerという名前で始まるプロファイルを除外しているので、同じようにする場合は、このタスクを実行するプロファイル名を「Taskerプロファイル操作」とか、先頭をTaskerで始まる名前にします。

  1. Variable Set
    Taskerで用意されている変数 %PENABLED で現在有効になっているタスクが取れるので、ローカル変数 %tmp に入れます。
    カンマ区切りでプロファイル名が入ってました。
  2. Variable Set
    後で戻す時のために、有効になってるタスクを %nowEnableProfileLists に保管しておきます。
  3. Variable Split
    タスクのリストはカンマ区切りなので、カンマで区切ります。
  4. Forループ
    配列%tmp()の内容をローカル変数%valに入れながらループし、有効になっているプロファイル全てをOFFします。
  5. If
    Variable Splitをすると配列になり?、%tmpは%tmp1、%tmp2… という感じで扱えるのですが、%tmp1 とか変数名がそのまま格納されてる場合があったので、Matches Regexで、%valが%で始まってたら(^%)Gotoでループ末尾に移動します(スキップ)
  6. Goto
    上記条件に一致したらループ末尾に移動します(スキップ)
  7. End If
    上記Ifの閉じです。
  8. If
    全てのプロファイルをOFFにすると、戻って来れないので、このタスクを実行するプロファイルは除外します。
    今回はこのプロファイル名を「Taskerプロファイル操作」としたので、Taskerから始まるプロファイルは除外しています。
    Matches Regexで ^Tasker とすると、Taskerという名前で始まるものにマッチします。
  9. Goto
    上記条件に一致したらループ末尾に移動します(スキップ)
  10. End If
    上記Ifの閉じです。
  11. If
    値が空の場合があるかな?と思って、%valが空(Isn’t Set)の場合にループ末尾にスキップします。
  12. Goto
    上記条件に一致したらループ末尾に移動します(スキップ)
  13. End If
    上記Ifの閉じです。
  14. Profile Status
    %valにプロファイル名が入ってるので、これをOFFしてます。
  15. ラベル
    continueという名前を付けたラベルで、スキップ用です。
    Task > Anchor で。
  16. End For
    ループ閉じです。

変数に保管しておいたプロファイルを有効に(戻す)タスク
scr_on_20140216B

上のタスク2つのxmlセットです
Tasker 2014021602(ダウンロード)

 ※ 最初に書いた記事は、「このタスクを実行するプロファイルを除外する」のを忘れてました(試しに実行してビックリしました)

Tasker
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ja

Comment

タイトルとURLをコピーしました