機内モードの設定を自動化してみる(おまけ)
というわけで、ここまで3回にわたって「機内モードの自動化」を考えてきたわけですが、
前提が「設定も解除も自動(ただし必要な場合は手動で解除)」という感じでやってた訳じゃないですか。
仮に「すべて手動(もしくは時刻)での解除」ってのを前提にしてしまうのなら、設定のトリガーは必ずしもスケジュール連動という必要は無いのではないかと思いました。
たとえば「どれか一台の機器で操作をすると紐付けられた機器がすべて機内モードになる」とかでもいいのではないかと。
当然コレを使うわけですが、
MacroDroid - デバイス自動化 - Google Play のアプリ
MacroDroidは「Webhooksの呼び出し」をアクションにすることがで来ますが、「Webhooks経由での呼び出し」をトリガーにすることもできるので、こういう段取りでいけるのではないかと思いました。
1) 手元の「メイン機」でマクロを起動
※トリガーは何でもいい
2) あらかじめ設定された機器に対してWebhooksのリクエストを送信
3) Webhooksのリクエストを受信した機器で機内モードを設定
4) 2~3を機器の台数分繰り返す
5) すべての処理が完了したら手元のメイン機の機内モードを設定
※ここは連動してもしなくても良い
6) 機内モードの解除は各機器ごとに解除
※手動での操作、時刻をトリガーにする等
iOSの場合はWebhooksに関して「送信」は可能ですが「受信」はできないようです。
私のように「1台だけiOSで残り(の複数台)はandroid」であるならばiOSを「操作する端末」にしてしまうという方法もあります。
まあ私のは「カバンに入ったiPad」なのでスマホの機内モードを設定するのにわざわざ出すのは現実的ではないですけど。
なので「操作機」はスマホがいいですね。
というわけでiOSは一旦忘れます。
まずMacroDroidで「Webhooksのリクエストを受信したら機内モードを設定する」マクロを作ってみます。
(トリガー)
接続
→Webhook(URL)
→「識別ID]を設定
※ここでは仮に「airplain_mode」としておく
(アクション)
接続
→機内モードのON/OFF
→オプションを選択
※こちらを参照
→オプションを選択
※「機内モードをONにする」を選択
こんなかんじです。
最低限これだけやれば、Webhooks経由で機内モードの設定が可能です。
この部分が呼び出し用のURLになります。
黒塗り部は機器固有のIDです。
「短縮URL」も使えるので便利ですね。
コピーしてどこかに貼っておきましょう。
次に呼び出しですが、極端な話をすれば「呼び出し用のURL」にアクセスできさえすればいいのでわざわざマクロを作る必要すら無いんですよね。
「操作機」のブラウザでブックマークしておいてそれを開くだけでもいいと言う話で。
「ハイパーリンクが自動的に有効になるエディタ」とかそういうアプリにURLを保持しておいて必要なときに叩くとかでも用は足ります。
前回までに用意したスケジュール連動のトリガーでこのマクロを呼び出すというハイブリッドでも良さそうですね。
そうすれば「操作機」の方だけしっかりマクロを組んでおいて「呼び出される側」は先ほどのマクロさえあればいいということになりますし。
一応まとめて呼び出すマクロもざっくり作ってみます。
アクション「アプリ」カテゴリの「Webサイトを開く」を選択し、URLに先ほどの呼び出し用URLを入れます。
「HTTP GET」をチェックすればURLへのアクセスはブラウザが起動しない状態で行われます。
念のため「完了するまで待機」をチェックした上で次のリクエスト送信まで一息ウェイトを入れます。
一応これで「一台ずつ順番に機内モードに設定」と言う形になります。
ただし、URLの呼び出し時に接続に失敗してエラーが出ることもちょいちょいあるので、何らかの「チェック」は考えた方がいいですね。
私の場合、Webhooksリクエストを受信した側でまず「受信した」旨の通知を「操作機」送ってから機内モードの変更をするようにしました。
それと呼び出す側の方にURLのアクセスの成否を取得して所定の回数リトライする仕組みも加えました。
その辺の処理は「アクションブロック」の機能を使うと良いと思います。
あと解除に関しては、「このリクエストを受信して機内モードを設定してから180分待機した後に自動解除」とか、加えて「呼び出し時に待機分数を指定」とか色々試してみています。
前提として万人向けの試みではなかったと思いますが、個人的に楽しくできたのでよしとします。