Bluetooth PAN使用時に、特定のアプリで自動でwifi テザリングに切り替える
Bluetooth PANは低消費電力で便利ですが、如何せん遅い。最大速度1Mbps。動画どころが一部のニュースの読み込みすら遅い。
遅いときだけwifiに切り替えたらいいんじゃない?
と言うことで、Automateで実装してみた。
関連記事
Joinを利用してフルAndroidスマウォから親スマホの電話を発信させる、その2 - diablo3cs’s diary
アイデア: 電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える - diablo3cs’s diary
Joinを利用して、フルAndroidスマートウォッチから親スマホを操作する例。今回は二番目の記事で作成した親スマホのHotspotをオンオフする機能を流用します。追加で弄るのはフルAndroidスマウォ側だけ。
やること
- 時計側で特定のアプリ、YouTubeやニコニコ動画やらを開いた場合、wifiをオンにする。
- 同時に通知notificationを発行してJoin経由で親スマホのHotspotをオンにする。
- その後、Bluetooth PANを一時的にオフにする。BT PANが有効の場合、なんでか接続がwifiより優先されるためです。BT PAN有効下ではテザリングに接続出来ない。
- 他のアプリに変わったら元に戻す。
使うもの
フルAndroidスマートウォッチ側
- Automate
- Join
親スマホ側
- Join
- Tasker
今回はAutomate部分のみ書きます。その他については上の記事を参照ください。
作ったもの
Automate for Android ⋅ Auto_wifi_connect_by_app_V0.3
- 実行するとforegroundのアプリが変化するのを待つ。
- 特定のアプリ(今回はYouTube、ニコニコ動画、SmartNews、NHKニュース)がforegroundに来ていれば、wifiをオンにして親スマホにもHotspotがオンになる通知を出す。そしてBT PANを切る。
- 他のアプリがforegroundに来た場合、wifiをオフにして親スマホのHotspotオフ、BT PANを再接続する。
問題点
なんかAmazon Prime Videoは特殊な実装をしているらしく、foregroundで検出が出来なかった。なんでや?
BT PANからwifiへの切り替えには少し時間が掛かり、たまに親スマホ側で失敗してることがある。うーん。まだまだ習作や。