フォト
2026年5月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

« 天気が良い日はやっぱり富士山 | トップページ | 天気の良い日はスキー場で山見 »

2026年3月17日 (火)

Android16でホットスポット(テザリング)の自動運転をする方法

Navi_20260317182301
今回はHow toもの
  
巷に情報が少ないのでまとめてみました

今回の記事はAndroid16を搭載したスマホを持って自動車に乗車した際にスマホのホットスポットを自動でONにし、車両から離れる際にはOFFにするという一連の動作を実現するにはどうしたらよいかという点だけにフォーカスしてみました。私もこれを実現するために事前に検索しまくりましたがなかなか現在の環境に合う情報が少なく苦労しました。そこで七転八倒しながら試してゲットした取りうる選択肢と決定打をひとめとめにしてみようと考えたわけです。マニアックなどなたかのお役に立てばということで。

具体的に言うと自動車に乗り込んだ際にホットスポットを自動操作するのにBluetoothの接続をトリガーにします。イグニッションONで車載ナビやディスプレーオーディオの電源が入り車両側機器とスマホがBluetoothにてペアリングが完了したらならばフラグが立ったとしてスマホのホットスポットをONにする。反対にBluetoothの接続が切れたらホットスポットをOFFにするという一連の動作の自動化を目指します。以前はTaskerやMacroDroidのような自動化アプリを使って比較的簡単に実現できていたことなのですがAndroid16となった今ではやたらと難度が高い。現時点でこれを実現するには私が知る限り以下の方法があります。

1.その機能を持ったスマホを使う
Samsungの一部スマホでは上記の機能を設定内に持っている機種があるそうです。番外ですがiPhoneにもあるらしい。この方法が苦労無しで一番簡単ですね。

2.シェアウェアである自動運転アプリのTaskerを使いTasker settings, Shizuku, Deltaなどのヘルパーアプリを駆使してコマンドをインテントさせホットスポットを操作する
非rootスマホではこの手段を取ります。試したところ確かに動きます。ただし目的達成のキモとなるアプリShizukuを起動するためにはスマホ設定の開発者向けオプションにあるワイヤレスデバッグがONになっているのが必須条件。これをONにするのもWiFiに繋がっていないとできないしONにしていても知らないうちにOFFになっているケースがある。画面スリープに入るとその後タイマーが効くのか切れてしまうことがありそうなると再度の設定操作が必要となる。再起動後も同様。これでは使い勝手があまりに悪すぎるので私は早々に諦めました。

3.rootを取得したスマホで上記2の環境を構築しShizukuの起動はワイヤレスデバッグではなくroot権を用いて行う
これが決定打です。これにより目的は達せられホットスポットスイッチを自動操作するテザリングはエラー無く快適に使えています。

以上のとおりSamsungスマホ以外のAndroid16環境では上記3しか無難に使える方法はないのかもしれません。2の方法を用いて中途半端に実現する事はできますが、それならば手動でホットスポットスイッチを操作した方がまだ手間は少なく確実と言えそうです。またWiFi Auto Hotspotのような同じ目的を持ちながらも違ったアプローチでホットスポットを操作しようとするアイデアを持った非rootアプリも存在します。裏技的で目の付け所はすばらしいのですが残念ながら私の環境下では動いたり動かなかったりと動作不安的で実用になるとは思えませんでした。

結論的には Android16を積んだスマホで車両に乗車降車した際にホットスポットを安定して自動操作するには現況はrootを取得済みであることが必須 と言えるのではないでしょうか。ではその目的を達成するには具体的にどうしたらよいかを以下にまとめます。

STEP1
なにはともあれrootを取得したスマホを用意します。rootには関係ありませんがスマホのホットスポット設定でアクセスポイント名とパスワードは事前にセットしておきましょう。開発者向けオプションのUSBデバッグをONにしておくのはもちろんです。

STEP2
以下のアプリを用意します。
Tasker
Shizuku
Tasker settings
Delta
TaskerはシェアウェアですからPlayストアから、その他のアプリはリンク先のgithubから最新版を入手して下さい。ShizukuはPlayストアにもありますが2024年版であり内容が古いのでgithubから手に入れた方が良いです。Tasker以外はオープンソースのフリーウェアです。製作者の皆様に熱烈感謝。後述しますがホットスポットONだけでいいのならDeltaは無くても大丈夫です。でもここまでいじくるのならフルコースでやったほうがよろしいかと。

STEP3
以下の順でスマホにインストールします Tasker→Shizuku→Tasker settings→Delta
Tasker settingsはadbコマンドを使ってパソコンからスマホへインストしましたがスマホ画面上からTaskerを使って行う方法もあります。詳しくはここのCRITICAL INSTALLATION INSTRUCTIONSを参照して下さい。Tasker settingsとDeltaでのポイントはShizukuの後にインストすること。アプリを立ち上げた際にShizukuを使うかと聞いてきたらはいと答えましょう。Taskerは最初ヘルプのポップアップがうざったいですが時に重要なことが書いてありますよ。Taskerのマクロ作成については後述します。インスト後にShizukuをタップして立ち上げると以下の画面が出ます。TaskerもTasker settingsもDeltaも皆Sizukuに依存してadbの管理者権限を使いますので名前は軽いですがけっこう重い存在なんですよね。

Sizuku01
そこでギアマークのアプリを管理をタップ(画面右上のギアマークではないですよ)。その中のリストからでTasker、Tasker settings、デルタの各スイッチをONにします。もしリストにそのいずれかが無かった場合はそれらのアプリを一度立ち上げると生えてきます。上の画像ページに戻って開始をタップするとSuper Userの承認を求めてきますので許可して下さい。この時点であのいまいましいワイヤレスデバッグの呪縛から解放されます。さらに右上のギアマークをタップして起動時にスタートのスイッチを入れておきます。これらはrootスマホの特権ですね。ちなみにSuper User権限はTaskerにも必要ですがTaskerをいじっているときに求められたら同様に許可しましょう。次にDelta(デルタ)を設定します。

Delta
デルタを開くとShizukuへのアクセス許可を求められるので素直に認めます。画面右上の設定をタップするとパスワードを含んだスマホ内のホットスポット設定項目が表示されているはずです。下にスクロールさせAdvanced settingをタップしてさらに下にスクロールさせると接続できるクライアント数の制限という項目があります。デフォルトでは1ですが必要数をセットします。私は同時に3台接続していますが5くらいで十分かな。セキュリティが心配なら接続予定だけの数でいいでしょう。さらに下へスクロールしていくとTasker integrationというカラムがありますのでこのスイッチを入れます。アプリの方からTaskerに統合してくれっるっていうのだからありがたい。そのすぐ下にSetup infoというボタンがありますので押して読んでおきましょう。次に控えるTaskerのマクロに関わるとても重要なことが書いてありますよ。画面右下のSaveボタンを押して設定した内容を保存します。

以上でTaskerを補助するアプリの準備段階は完了です。次にTaskerにて自動運転マクロを組みます。

STEP4
Taskerのマクロを組むのは本作業のメインイベントとなります。Taskerは通常なにをさせたいかのタスクを先に作るのがお作法ですね。最初につまずいたのはこれ。
Taskerは以前のAndroidバージョンでも使っていたWiFiテザリングを直接いじくるタスクを組むことができます。Tasker settingsとShizukuの力を借りてホットスポットをONするそのタスクをAndroid16上で動作させることができましたが、どうやってもBluetoothがOFFになった際にホットスポットをOFFにするタスクがエラーを吐いて言うことを聞いてくれなかったのです。スマホのホットスポット設定内には一定時間(私のスマホでは5分)テザリング機器が未接続だった際に機能を止めるというオプションスイッチがあるのでホットスポットONだけできればとりあえずの用は足りないこともありません。
ですが苦労して自動運転させているのですからONしたのならリアルタイムで自動OFFにしたいところ。そこでホットスポットのON-OFF操作についてはそれ専用に特化した補助アプリであるデルタを経由してインテントさせることで問題なく動作させることができました。以下が改良したタスクです。

Tasker1

上記の画像ではテザリングON altとOFF altと名前を付けてタスクを用意できた段階です。OFFタスクだけ新たに作れば済むことなのですがONタスクとの整合性を考えて両方とも作り直しました。新たにタスクを用意するにはタスク画面で「+」をタップします。そこで以下をON用にそれぞれ入力します。

タスク名:ON用に分かりやすい名前を
アクションのカテゴリー → システム → インテントを送信
アクション: dev.shadoe.delta.action.START_SOFT_AP
カテゴリー: None
パッケージ: dev.shadoe.delta
クラス: dev.shadoe.delta.SoftApBroadcastReceiver
対象: Broadcast Receiver

同様にOFF用のタスクも作ります。タスク名とアクション以外は同一です。

タスク名:OFF用に分かりやすい名前を
アクションのカテゴリー → システム → インテントを送信
アクション: dev.shadoe.delta.action.STOP_SOFT_AP
カテゴリー: None
パッケージ: dev.shadoe.delta
クラス: dev.shadoe.delta.SoftApBroadcastReceiver
対象: Broadcast Receiver

これでデルタを経由してホットスポットを制御してテザリングができるONとOFFタスクが2個できました。ここでまずは出来上がったタスクで実際にホットスポットの制御ができるかを試験します。

Tasker2
タスク画面から該当するタスクを選んだ後に編集画面の左下にある上記赤丸内のアイコンをタップしてテスト。ONタスクでホットスポットが起動してステータスバーにチェーンのアイコンが現れ、OFFタスクで停止しアイコンが消えればしめたもの。これが動けばもう9割は出来上がったと言えます。もしこの動作がうまくいかずにエラーを吐くということは設定手順か入力したスペルなどどこかで引っ掛かっています。もう一度段階を踏んで確認して下さい。
なおデルタでインテントするONタスクに動作上の問題がある場合はTaskerがタスクメニューツリー内に持つ通常のタスク(ネット通信→WiFiテザリング→セットをオン)を作るのは簡単なので双方を比較してみると良いでしょう。rootスマホならば基本的にはどちらでも動くはずです。またONのタスクOFFのタスク共にインテントのコマンドの前に1秒くらいの待機(Wait)を挟んであげるとフローが滑らかになって良いかもしれません。

STEP5
うまく動いたら次にプロファイルを作ります。「プロファイル」にアンダーバーが表示している画面に戻り「+」をタップします。

Tasker4
・イベント → ネット通信 → Bluetooth接続 → イベント編集ページにて最下端へスクロール
・「名前」のところにある虫眼鏡をタップしてトリガーとなるBluetooth接続先を選ぶ
・「住所から地図」のところにある虫眼鏡をタップして同様に選ぶ(BTアドレスが書き込まれます)
・「条件」のところの「+」をタップし%以下にbt_connectedと入力
・その右横の記号は~でもいけるがタップして(==)を選ぶとEQになる
・値はtrueと入力

なんだかアプリの日本語表記がおかしいところもありますが海外アプリなので御愛嬌。ちなみに以前のTaskerは英語表記だったので今は使い勝手がだいぶ良くなりました。さてこれでホットスポットをONにするプロファイルができました。ホーム画面に戻るとポップアップが開いていますので先程作ったホットスポットONのタスクをタップします。これでON操作のプロファイルが完成します。同様にもうひとつOFFのプロファイルを作りますが内容は同じで「条件」の値のみをfalseとします。ホーム画面に戻った際のポップアップからはOFFのタスクを選んで下さい。

ご苦労さまでした。これで作業は全て終了です。うまくいけば車両に乗り込んだり降りたりする際に快適な環境が実現できますよ。念の為ですがスマホのアプリ設定で自動起動をさせるアプリにTaskerとTasker settingsを加えておくこと、アプリ履歴画面からTaskerのアプリロックを掛けておくこと、今回インストした各アプリの電源設定はスマホの設定にて無制限にセットしタスクキルされないようにすることをお勧めします。

いかがでしょうか。クセが強いと言われるXiaomi スマホのAndroid16ベースのHyper OS3環境であってもこのマクロで動いてくれています。特にスマホのネット接続が必須のディスプレーオーディオを車両で使っておられる方は今回の小細工がうまくいくとほんとに楽になることでしょう。毎回USBの有線接続をされているのならなおさらです。導入後は色々なアプリが動いているせいかスマホの電池の消費が少しばかり増えましたがそこは仕方ないですね。長文になりましたがこのつたない記事がどなたかのお役に立てば幸いです。

-*-*-*-*-*-*-*-*-*-*-

追記1:HyperOSを積んだXiaomiスマホで顔認証の設定内にある「ロック解除後もロック画面に留まる」というスイッチをOFFにしていると顔認証でロック解除した際に立ち上がっていたホットスポットが切られてしまうという症状が出ることがあるようです。その際はそのスイッチをONにして試してみて下さい。

追記2:ホットスポットONのタスクですがインテントの命令前後にいくらか足して以下のようにしてみました。

Additionaltask
Bluetoothの接続が確立されたら待機1秒⇒画面点灯⇒インテントを送信⇒待機1秒で1秒間画面点灯⇒画面消灯という流れです。ホットスポットを開始する際に画面が点灯中/消灯中で安定度が違う時があったので画面点灯(ロック画面でもホーム画面でも可)している時にホットスポットONのインテントを発してやったらどうかというのが上のタスクです。これにより取りこぼしが無くなった感じがします。waitの1秒やブロック時間の500mSなどはもっと縮められます。処理の速いスマホを利用している方はここからスタートして100mS単位で削ってみましょう。これも一例ですので皆さんの環境に合うよういじってみて下さい。

« 天気が良い日はやっぱり富士山 | トップページ | 天気の良い日はスキー場で山見 »

くるまいじり」カテゴリの記事

GPS・スマートフォン」カテゴリの記事

コメント

こんにちはひとつ質問させて下さい
上の記事のRootを取って行う方法でホットスポットの自動化はできましたがスリープ状態から復帰させるとホットスポットのスイッチが切れて接続が切断されるという問題に悩んでいます
スリープさせないで画面ONの状態ではホットスポット接続遮断共うまく動いていますが何かヒントをいただけないでしょうか
スマホはXiami14 ultraでグローバルROMのHyperOS3を使っています

のりPさんこんにちは。いい機種をお使いですね。そうですかスリープ復帰でホットスポットが切れてしまうのですね。そちらでは顔認証を使っていませんか。画面ロック解除系かなとあたりを付けて私のところで再現させてみましたが顔認証の設定内に有る「ロック解除後もロック画面に留まる」というスイッチを切っていると私の環境でもたまにそんな状況になることが分かりました。そもそもフェイスアンロックはセキュリティ的に甘いので顔で認証が通った後もロック画面を表示したままというのがAndroidの基本的なお作法です。Xiaomiの場合、ロック画面も一緒に通してしまえというのがこのオプションですがどうもこの辺が悪さをしているみたいです。このスイッチを入れておけば私の環境では安定してTaskerによるホットスポット操作はできているように見えます。お試し下さい。
なおこの件については記事の本文に追記させてもらいます。

やってみました確かに顔認証を利用してご指摘のスイッチを切って使っておりました
スイッチを入れてホットスポットがつながった直後にスリープを解除してホーム画面を開く時に間にロック画面を挟んでからホームを開けば以後は問題なく顔認証でも指紋認証でもスリープ解除してホットスポットは落ちなくなりました
ほんとに接続後の最初の1回のみロック画面を出さなければいけないというだけのことなんですよね
Xiaomiスマホは最初だけでも正しい作法に従うのが重要なんですね勉強になりましたアドバイスありがとうございました

そうですかうまくいって良かったですね。変化があったということはその辺が悪さをしているということですから周辺設定を色々いじくってみるのも手です。あと同じ顔認証の設定内に「画面点灯時に顔認証を許可」というのがあるならばスイッチを入れておくとより安定するように感じます。HOSはクセが強いので色々面倒ではありますね。
14ultraは可変絞りが付いていていい端末ですよね。お楽しみ下さい。

コメントを書く

(ウェブ上には掲載しません)

« 天気が良い日はやっぱり富士山 | トップページ | 天気の良い日はスキー場で山見 »