Joinを利用してフルAndroidスマウォから親スマホの電話を発信させる、その2
Joinを利用してフルAndroidスマウォから親スマホの電話を発信させる - diablo3cs’s diary
↑前置き。
確認済み環境
- 時計側 Kospet Prime2、またはRogbid Brave Pro。
- 親スマホ側 Redimi Note 9S、MIUI12、Android10、非root、PINや指紋認証などのロックスクリーンセキュリティーなし、ロックスクリーンあり。
なお2021 2月現在、Android10搭載機のフルAndroidスマウォではAutomateなどからのPOP up表示が出来ないという、わりとキツめのバグがあり、dialog生成とかができない。
目的とか
- フルAndroidスマートウォッチから親スマホの電話を発信させる。
- 着信対応(着信時に電話にでる、電話を切るなど)はJoinでもWatchdroidでも既に可能。
- 通話はできない。
- 親スマホのバージョン、設定によっては出来ないかもしれない。出来なかったら泣いて謝りますが、私の力ではどうにもならんとです。許してね。
考え方とか
電話の発信
- 時計側でアドレス帳から電話する相手を選択する。アドレス帳の選択などはAutomateにて実装させる。
- 選択した電話番号と発信命令(ただのテキストだけど)をAutomateで時計上の通知notificationとして表示させる。
- Joinにてその電話番号入り通知を親スマホに転送する。
- スマホ側にてJoin経由で送られた通知notificationを識別し、Taskerにて電話発信させる。
発信終了、通話終了、着信対応
Joinにもともと機能ついてるのでそのまま使う。またはWatchdroidにも付いてるのでそれを使う。
まぁ分かるとおり、このTipsを使えばほぼ任意のマクロ、アプリを時計から親スマホにさせられるので可能性は無限大。
必要なもの
各アプリで必要な権限などは割愛します。rootもADBも不要です。
-
Automate
Automate Ver 1.26.0でのFlow Shortcutが作成出来ない件について - diablo3cs’s diary
時計側に入れる。
2021/2月現在、Automateについては私は Ver1.25.1を推奨しますが、他アプリからのショートカット起動が要らない場合は気にしなくて問題ありません。私はこの問題により、場合によっては今後、Androidマクロ関係はTaskerかMacrodroidに移行せざるえないかもしれません。あーやだやだ。
ブロック30個までだったかな、が無料。
-
Join
Join by joaoapps - Apps on Google Play
時計側と親スマホ側、両方に入れる。
インターネット(Googleの鯖)を介して通知送ったり、遠隔でマクロ操作したり。ググれば使い方は出てきます。Taskerとの連携が強い。有料アプリです。
-
Tasker
親スマホ側に入れる。
言わずと知れた、最強のマクロアプリ。出来ることはAutomateより多いが、兎に角取っつき難い。言語は日本語じゃなくて英語にしましょう。ヘルプやガイダンスは基本英語なので、逆に日本語表示だと混乱する。なお有料アプリです。
-
Tasker Plug inのAutoApps
AutoApps - Apps on Google Play
親スマホ側に入れる。
無くても大丈夫かも。便利な自動化系Taskerプラグインをまとめたもの。プラグインてのは特定の動作などをする際、設定から引数から動作からを改良して色々できるようにするもの。有ると相当Taskerが扱いやすくなる。なお、このプラグイン集の中にはお金払わなくても使える奴とTrial 7日の有料のがあるみたい。値段は数百円。
なんでTasker初心者向けサイトであまり紹介してないのか謎。これこそ初心者に必要なものだと思いますが…
-
Tasker Plug Inのひとつ、AutoNotification
AutoNotification - Apps on Google Play
親スマホ側に入れる。
Joinの通知notificationを取得してTaskerに引数を渡すのに使う。有料だったと思う!
時計側のAutomateの構築
Ver1.25.1で作成してあるので、たぶん旧バージョンでも読み込めると思います。
Automate for Android ⋅ Pick contact and start calling via join
実行すると
- 電話帳を開き、連絡先の選択を待つ。
- 選択された相手の電話番号を取得する。(なお複数番号が有る場合は未対応です)
- 選択された電話番号をトースト表示する。
- タイトルに「Call via Join」、本文に電話番号を格納した通知notificationを生成する。
- 6秒後にその通知を消す。
- 終了
時計側Joinの設定
親スマホにAutomateが生成した通知を送れるように設定してください。画面小さいと遣りにくいですが。Android10機ではAutomate Runningの表示を非通知化できるので楽チン。
親スマホ側のJoinの設定
時計側の通知を受けられるようにします。
親スマホのTaskerの設定
https://drive.google.com/file/d/10pDt7_HoaeAJ4iRa-hvHccg-a-2E-m0k/view?usp=drivesdk
Import Projectから読み込む、のかな。
↓ここからdescriptionです。
Profile: Get notification and call (13)
Restore: no
Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
Notification Type: Only Created Notifications
Notification Title: Call via Join
Package Name: com.joaomgcd.join
Get All Fields : true ]
Enter: calling (5)
A1: [X] Variable Set [ Name:%Callnumber To:%antexts%antext Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:3 ]
A2: Flash [ Text:%antext Long:Off ]
A3: Call [ Number:%antext Auto Dial:On SIM Card: ]
↑ここまで。なんかA1に変な変数取ろうとした形跡有りますが無視してください。一昨日Tasker始めたところなので許して。あん。消せば良かった。あん。
やってることは、以下の通り。
- Joinの通知のうち、タイトルが「Call via John」のものが生成たら、各引数を格納する。
- Textにある番号をflash表示(Automateで言うところのトースト表示か)する。
- Textに格納されている番号に電話する。
これで時計側から親スマホに電話番号を渡して電話発信させることが出来るといいな。
こんな感じでFull Android Watchからスマホに電話発信させることが出来る。
思ったこと
情報引き渡しにnotificationを使うのは全然スマートじゃないと思うけど他のやり方思い付かなかったアル。わいはhello worldしかしたことのない素人アル。Broadcast intent ? Tasker側のルールが理解できてないのでオラには無理。
Taskerは流石に最強のマクロツール言われるだけあるが、Automateで指先一本でコネコネして(コネクションを構成する)作れるものを、同じように実装しようとすると、もう、どーしたらいいのか分かんない。つか、やりたくない。素人向けはどう見てもAutomateで、電話関係の不具合無ければTaskerは使わなかったと思う。
Taskerだけのヘルプ見ても全く解決しないことが多い。記述方法のルールがあんまり書いてない。なのでnotificationから引数もらって電話するだけの構築に半日も掛かったし、結局Auto notificationのプラグインに助けられた。
AutomateからTaskerのタスクへpayloadの渡方法や、Joinのcustom actionにpayloadを渡す方法がわかんない。理解できてない。