VPSの運用を経て、日常生活をよりスマートに、より自動化できないかと思考を巡らせた結果、スマートフォンのカスタマイズに行き着きました。ある特定の目的を達成しようと模索する中で、MacroDroidという自動化ツールの門を叩くことになったのです。
本文ではその第一歩として、MacroDroidを用いた「スマートフォンの画面ロック自動解除」の実装手法について記録を残します。
(過去の中国語ブログを訳したもので、スクリーンショットはしばらく中国語のままにします)

MacroDroidとは
MacroDroidは、直感的なインターフェースを通じて高度な自動化タスクを作成できる、Android向けの強力な自動化ツールです。
本アプリは**「トリガー・アクション・条件(制約)」**という論理構造に基づいており、プログラミングの知識がなくても、Wi-Fiの切り替え、メッセージの自動返信、定刻タスクなどの多種多様な自動化を実現できます。
同様のツールであるTaskerと比較して、MacroDroidはユーザーフレンドリーで習得難易度が低く、初心者からパワーユーザーまで幅広く適応します。システム機能への深いアクセスやプラグイン連携に加え、共有されたマクロ(スクリプト)を活用することで、日常的な操作の効率を劇的に向上させることが可能です。生産性の向上、バッテリー節約、デバイス制御の強化など、その活用シーンは多岐にわたります。
―ChatGPT
簡単に言えば、MacroDroidは「ローカル完結型の自動化ツール」です。Taskerに近い存在ですが、より高度かつ完全にローカルで動作するIFTTTとイメージすれば分かりやすいでしょう。
無料版では最大5つのマクロ(Micro)を作成できます。これらは一つひとつが独立した「ミニアプリ」のようなものと考えて差し支えありません。各マクロは、大きく分けて3つの要素で構成されています。

一部のアクションには Root権限 や ADB Shell 経由でのコマンド実行が必要となりますが、それらに頼らずとも、標準機能で対応可能な操作も数多く存在します。
まずはスマホを自動ロック解除
多くの場合、スマートフォンに何らかの操作を自動実行させるための絶対的な前提条件は、「端末がロック解除状態にあること」です。
① 実のところ、MacroDroidには一見すると非常に親切で「おあつらえ向き」な「画面ロックの解除/固定」というアクションが存在します。
下の画像の通り、選択肢は「ロック画面を表示(有効)」と「ロック画面を解除(無効)」の2つだけ。しかし、世の中そんなに甘くはありません。

② デフォルトの機能が使えない以上、要件を細分化し、一つひとつの動作をステップバイステップで実装していくしかありません。
ロック解除に必要な工程
※本手順は Pixel 7 Pro の環境に基づいています。
※指紋認証などの生体認証をアプリ側に記録・再現させることは不可能なため、本マクロでは PINコード入力 による解除を前提としています
(パターン認証も理論上は可能ですが、実装の簡便さを考慮しPINを選択しました)。
検証の結果、私の端末において「ロック状態」から「解除完了」に至るまでに必要な工程は以下の通りです:
画面の点灯:この段階では、まず指紋認証画面が優先的に表示されます。
画面の下から上へのスワイプ:指紋認証画面からパスコード(PIN)入力画面へ切り替えます。
4桁のパスコード入力:設定しているPINコードを順に入力します。
実行キーを押す:私の環境では「<→| >」として表示されている確定ボタンをタップします。
実現後
原理さえ理解してしまえば、あとは非常に単純な作業です。
最終的に設定したマクロの構成は、以下の画像の通りです(パスコード入力部分は伏せています)。

注意事項として
「画面の下から上へのスワイプ(指紋認証からPIN入力への切り替え)」を実装する際の注意点
- スワイプの移動距離が不十分だと、画面が切り替わらずに元の状態に戻ってしまいます。下の画像の通り、私の設定では確実に切り替えるために、縦方向に900ピクセル以上の十分なストロークを確保しています。

- パスコードの入力は、座標を一つずつ取得しなくても「テキスト識別」で直接指定可能です。

ただし、最後の「確定ボタン」に関してはテキスト識別が機能しません。
Pixel 7 Proで検証したところ、「→|」という記号はテキストとして正しく認識されませんでした。
この場合は、確定ボタンの「座標」を直接指定する必要があります。
座標を特定する際は、ミリ単位の正確さを追求しなくても大丈夫です。おおよその位置を目測でアタリをつけたら、MacroDroidの「アプリ内での位置を確認」機能を利用し、確定ボタンに近い反応のあるオブジェクト(アイコンなど)をタップしてみてください。
すると、その周辺の正確な座標値が取得できます。私の環境では、画像にある通り (751, 1857) という座標を使用しました。
最後に、各工程の間にわずかな待機(Wait)時間を挿入することをお勧めします。
特に動作の遅い端末(いずれPixel 7 Proもこうなるだろう)では重要です。
※画像の一番上にある「5秒待機」はテスト用です。マクロを実行してから手動で画面をロックするまでの猶予として設けたもので、実際の運用時には不要です。
調整を重ねた結果、動作は以下の通りになりました。
(終わり)
「MacroDroidを用いたスマートフォンの自動ロック解除」への1件のフィードバック
コメントは受け付けていません。