ヒロエルモノヲヒロウ日記

思いついたときが書き時

機内モードの切り替えを自動化してみる(実践編)

前回はMacroDroidで機内モードの制御ができるようにするところまでやりました。

 

dogadget.hatenablog.com

 

実際にマクロを作ってみます。

 



アクションは簡単ですね。

機内モードONの場合は

 

 接続

  →機内モードのON/OFF

   ※ルート化、デフォルトアシスタントアプリ、ADB Hackから一つ選択

   →機内モードONにする

 

という感じで設定します。



 

ここで※印のところでの選択が有効ではなかった場合、今設定したアクションに下記のような警告が表示されます。

 

 

 

また、「デフォルトトアプリからADB Hackに」のような変更をする場合は、アクションの設定変更で指定を変える必要があります。

 

結果的にこうなればOKです。

 

前後しましたがトリガーを考えていきましょう。

 

一番簡単なのは、「日時やアラーム」の「曜日/日付の時刻」をトリガーにして、オプションの「日付」を選択して搭乗日時を指定することです。

飛行機の搭乗は出発時刻の15~20分前くらいから始まることが多いと思うので、大体その辺を基準に日時を設定すれば搭乗するタイミングで機内モードがONになるはずです。

 

 

同様に到着時刻も(遅れを考慮して余裕を持った幅で)日時をトリガーにしてアクションを機内モードOFFにすれば基本的にはOKだと思います。

 

ただしこれだと飛行機に乗るたびに予定に合わせてONとOFFそれぞれのトリガーを設定する必要があるのと、機器ごとにそれぞれ設定を毎回しないといけないので結構面倒です。

 

なので、ここではGoogleカレンダーをトリガーに使用することにします。

 

まずはカレンダーを用意します。

既存のものでも専用のものを新規に作成してもOKですが、ポイントは「すべての機器でアクセスできるカレンダーにする」ということです。

androidなので各機器にGoogleアカウントを登録してるはずですが、同じアカウントを使用しているのであればそのままで問題ないですし、機器ごとに違うGoogleアカウントを使用している場合はカレンダーを共有するなどして対象となる全部の機器でアクセスできるようにしておきます。

 

すべての機器でアクセスできるカレンダーを用意できたら、フライト情報を登録します。

Gmailのフライト予約情報がGoogleカレンダーに自動登録されるようになっている人はそちらを活用してもいいかもしれません。

 

予定の開始/終了時刻を出発/到着時刻にしておくのは(とりあえず今の時点では)当然として、予定の件名は命名規則的なものは決めておきましょう。

 

MacroDroidでの制御にしか使わないものであれば「搭乗」とか「フライト」とかなんでもいいんですが、ここでは普通ののスケジュールとしても使用するものとして

 

○○空港へのフライト

※○○の部分は空港名

 

という文言にしておきます。

登録したフライト情報が各機器のカレンダーで同期されるか確認しておきましょう。

 

ここまでOKであればトリガーを作成していきます。

搭乗時(機内モードON)のケースです。

 

 日時やアラーム

  →カレンダーの予定

   →カレンダーオプションの選択

    ・予定の開始時

    ・フライト情報を登録したカレンダーを指定

    ・予定の種類は(指定なし)のまま

    ・予定のタイトルは

      *空港へのフライト

 

※対象となるカレンダーの選択を間違えないようによく確認しましょう。

 

必要に応じて「予定時刻より早めにトリガー」で起動タイミングを調整します。

飛行機の「出発時刻」って「ドアが閉まって機体が動き出す時点」らしいので、少なくとも10分前後は早めにしておくのが無難だとは思います。

「メインで使わないものでカバンに入れたままの機器」なんかはもう少し早めでも良いかとか、機器ごとに変えても良いでしょう。

 

ここでは「出発時刻の10分前」にしました。

 

こんな感じになりました。

 

 

 

機内モードOFFも作ります。

 

 日時やアラーム

  →カレンダーの予定

   →カレンダーオプションの選択

    ・予定の終了時

    ・フライト情報を登録したカレンダーを指定

    ・予定の種類は(指定なし)のまま

    ・予定のタイトルは

      *空港へのフライト

    ・予定時刻より早めにトリガーをチェック

     ・遅れてトリガーをチェック

     ・到着遅れも考慮して少し時間に余裕を持たせて設定

 

 

離着陸時の滑走路混雑や様々な要因で飛行機が目的の空港に遅れて到着することはそれなりにありえます。

その場合に着陸前などに機内モードが解除されないように、「遅れてトリガー」で長めのマージンを設定しておくべきだと考えます。

(機内モード専用カレンダーならば予定終了時刻に加算しておく形でも良い)

 

長めに余裕を持たせておくと予定通りか前倒しで到着した場合に機内モードの解除が遅れることになりますが、着陸してすぐに使用したい場合は手動で機内モードを解除すれば良いし、特に急いで使う必要が無ければ解除を忘れていてもそのうち自動で解除されるという形になるので、無難に長めの余裕を持たせておきます。

私の場合だとスマホは大概使う用事があるので手動で機内モードを解除することが多いですし、タブレットは着陸後に急いで使うことが少ないので自動解除に任せます。

ここでは到着(予定)時間の30分後としてみました。

 

できあがりがこれです。

どうでもいいんですけど、「早めにトリガー」の時がプラスで「遅れてトリガー」の時がマイナス表記なのはちょっと混乱しそうです。

 

同じマクロを各機器に対しても作成しておけば完了です。

あとは乗る飛行機が決まったらフライト情報を所定のカレンダーに登録しておくことで(カレンダーが同期さえされていれば)フライトに合わせて自動で機内モードの設定と解除が行われるはずです。

 

実際にやってみる場合は「試運転」を入念にやっておくことをお勧めします。

 

ある意味で「失敗は許されない」ものでもあるので…。

 

私はこの仕組みで機内モードを自動設定/解除する機器に関しては変更のたびに常時手元にある「メイン機」に通知を送るようにしていますし、機内モードを自動設定した後に「通信状態を確認するマクロ」を実行して「設定後に通信が可能な状態であればメイン機に通知する」という仕掛けも用意しています。

 

ごくまれに「MacroDroid上で機内モードの変更は動作したものの機器側では機内モードになっていない」という事象に遭遇するので。

 

再起動したら正常に動作するようになったので、何か内部のプロセス的なものが正常に動作していなかったという事かもしれません。

定期的な再起動大事。

 

なので手元の「メイン機」は一番最後に機内モードになるように設定するか、もしくは手動での設定にしています。

 

いずれにせよ試される方は自己責任でお願いします

 

 

気が向いたらそのあたりやります。

「そんな回りくどいことをしてまで自動化する必要があるのか」というのは言いっこなしで

 

私の場合どちらかと言うと「機内モードの自動制御」そのものよりも

 

機内モードの自動制御の仕組みを『考える』こと」

 

がメインだったりするので。