MacroDroid + Xiaomi (MIUI) の設定
先の記事
で、成り行き上MacroDroid
を導入したのですが、これがなかなか面白いです。
試行錯誤しながら、IFTTTやAutomateItなども導入したのですが、SNS等の外部との連携は強そうなのですが、個人的にはあまり必要としていなかったことと、フリー版では制限が非常にきついことから、できることがかなり限られていました。(IFTTTは、前記事のスマートプラグと組み合わせるためのレシピ2つを動かしていると、残りは1つしか動かせません。また、バッテリー情報がほとんど取れないなど、意外とやりたいことが出来ません)
MacroDroidは、フリー版だと 5つまでの制限はありますが、トリガーやアクションを複数登録できたり、いろいろかゆいところに手が届く感じ。
最近のAndroidOSの制限上、通常の方法ではいじれなくなってしまった WiFi のオン・オフや、モバイルデータ通信のオン・オフなども、Rootを取ること無く、比較的簡単にいじれるようにする手段があり、またそれがアプリ内で懇切丁寧に説明されています。
例えば、WiFiのオン・オフができるアプリがGooglePlayでは配布できなくなったということで、野良アプリとして公開されているヘルパーアプリを介して動作できるようにしていたり(※もちろん自己責任ですが…)、モバイルデータ通信のオン・オフについても、少しハードルは上がりますが、adbコマンドを叩くことで、利用できるようになります。
例えば、自宅から離れたら モバイルデータ通信をONにして、WiFiをOFFに、帰ってきたらその逆を行う、ということがちゃんとできるようになります。
adbコマンドによる設定は、改めて私が書くよりは、
この辺を参照してもらったほうが良いかと思います。
ちなみに、私は AndroidStudio をインストールしていたので、
C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\platform-toolsC:\Users\<ユーザー名>\AppData\Local\Android\Sdk\platform-toolsに adb.exe が入っています。
エクスプローラでこのフォルダに移動して [ファイル]-[Windows PowerShellを開く]として、cmdと打てば、 adb コマンドをすぐ使える状態になります。
で、USBでPCに接続した状態で、スマホの開発者向けオプションをONにして、その中のUSBデバッグもONにして、PCから
adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
を叩けばOK!
・・・というのが基本なのですが、私の使っている端末 Xiaomi Redmi 10 Pro (MIUI 12.5.1)ではそうは行きませんでした。
接続はOKなのですが、adbコマンドを叩くと、
* daemon not running; starting now at tcp:5037
* daemon started successfullyException occurred while executing 'grant':
java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS..........
.........
というエラーになってしまいます。
・・・実は、MIUIの場合は、「USBデバッグ(セキュリティ設定)」もONにする必要があるようです。ただし、これをONにするには、「MIアカウントにサインインしろ」と言われるので、まずはMIアカウントを作ってサインインする必要があります。
Xiaomi Redmi 10 Pro (MIUI 12.5.1)の場合ですが、
が必要になります。
ちなみに、OPPOの端末でも同様に、
- 開発者向けオプションの「認可の監視を無効化する」をチェック
の必要があるらしいです。
なお、設定が終わったら(adbコマンドが成功したら)、上記の設定はすべてOFFに戻して大丈夫です。(その方が安全です。)Miアカウントからもサインアウトして問題ありません。