他のアプリからミラーリングを操作
v1.8.4 から、ScreenOnAuto はミラーリングの開始・停止・切り替えを行う 3 つのインテントを受け付けます。インテントを送れるものなら何でも(自動化アプリ、ホーム画面のショートカット、ADB 経由のスクリプト、自作のアプリなど)ミラーリングを操作できるので、手動ではなく、運転時のほかの設定と一緒にミラーリングをオンにできます。
3 つのアクション
| アクション | 動作 |
|---|---|
idv.lzn.screenonauto.action.START_MIRROR |
ミラーリングを開始します。すでに動作中なら何もしません。 |
idv.lzn.screenonauto.action.STOP_MIRROR |
ミラーリングを停止します。動作していなければ何もしません。 |
idv.lzn.screenonauto.action.TOGGLE_MIRROR |
動作中なら停止し、停止中なら開始します。 |
同じアクションを繰り返し送っても問題ありません。動作中のミラーリングに開始を送っても、セッションを作り直さずに無視されるので、Bluetooth 接続のたびに実行されるような設定でも、すでに動いているミラーリングが中断されることはありません。
自動化アプリで使う
ほとんどの自動化アプリには、名前は違っても同じ要素がそろっています。一般的には「インテントを送信」のようなアクションに、次のような項目があります。
| 項目 | 値 |
|---|---|
| Action | 上の 3 つのアクションのいずれか |
| Package | idv.lzn.screenonauto |
| Class | idv.lzn.screenonauto.MirrorControlActivity(ブロードキャストの場合は …MirrorControlReceiver) |
| Target | Activity(または Broadcast) |
特に理由がなければ Activity を使ってください。違いと、ブロードキャストではミラーリングの開始を確実に行えない理由は、次の 2 つのセクションで説明します。どちらの場合も Class 項目は省略できません。空欄にすると、ブロードキャストはまったく届きません。
うまくいかないときは、まず下の対応する ADB コマンドを試してください。問題がインテントにあるのか、送信側のアプリにあるのかを切り分けられます。
アクティビティを起動する(おすすめ)
アクションを アクティビティ として idv.lzn.screenonauto/.MirrorControlActivity に送ります。
adb shell am start -a idv.lzn.screenonauto.action.START_MIRROR \
-n idv.lzn.screenonauto/.MirrorControlActivity
画面には ScreenOnAuto の何も表示されず、最近のアプリにも残りません。車に着く前に開始を送ることもできます。ミラーリングは待機し、車の画面が使えるようになると自動で始まります。
ℹ️ メモ ミラーリングの開始時には、引き続き Android が画面キャプチャの許可を求めます。完全にハンズフリーにするには、ADB で一度だけ事前に付与してください。ADB でミラーリング権限を付与 を参照してください。
ブロードキャストを送る
同じ 3 つのアクションは ブロードキャスト としても使えます。その場合の送り先は idv.lzn.screenonauto/.MirrorControlReceiver です。
adb shell am broadcast -a idv.lzn.screenonauto.action.STOP_MIRROR \
-n idv.lzn.screenonauto/.MirrorControlReceiver
この方法で送った 停止 は完全に無音で、ウィンドウもちらつきもありません。
コンポーネントの指定は省略できません。最近の Android では、送信側がどのコンポーネント宛てかを指定しない限りブロードキャストはアプリに届かないため、アクションだけのブロードキャストは破棄され、エラーもどこにも出ないまま何も起こりません。
⚠️ 警告 ブロードキャストで送った 開始 は確実ではなく、失敗しても何も通知されません。事前に次の 2 つを許可しておく必要があり、多くのスマホでは初期状態でどちらもオフになっています。
- 自動起動。 多くのスマホには、ブロードキャストによるアプリの起動自体を止める電力管理機能があります。バッテリーやスマホ管理の設定で自動起動の管理画面を探し、ScreenOnAuto を許可してください。スマホから警告が表示されることがあります。
- 他のアプリの上に重ねて表示。 Android のアプリ設定で ScreenOnAuto に許可してください。
開始だけが目的なら、上のアクティビティを使ってください。こちらはどちらの許可も必要ありません。
トラブルシューティング
- まったく何も起こらない — コンポーネントが指定されているか確認してください。指定のないブロードキャストは、ScreenOnAuto に届く前に破棄されます。
- 停止はできるのに開始できない — ブロードキャストで送っていて、上の警告にある 2 つの許可のどちらかが足りていません。アクティビティ宛てに送ってください。
- 毎回許可ダイアログが表示される — ADB で事前に付与していなければ、これは正常な動作です。
- ミラーリング中に開始を送っても何も起こらない — これも正常な動作です。上の説明を参照してください。
最終更新: