ScreenOnAuto

他のアプリからミラーリングを操作

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 つを許可しておく必要があり、多くのスマホでは初期状態でどちらもオフになっています。

開始だけが目的なら、上のアクティビティを使ってください。こちらはどちらの許可も必要ありません。

トラブルシューティング

最終更新: