2022-10-30

楽天Link を Bluetooth で発着信

 〜 Tasker を使った方法の完成版です 〜

 

 

楽天Link は「公式には Bluetooth に未対応」となっています。

 

「未対応」というのは、Bluetooth 機器側で受話/拒否応答/終話という操作ができない、という意味です。

 

つながってしまえば通話自体は Bluetooth 機器側でできます。

 

 

 

本記事は「未対応」の操作に代えて受話(自動応答)と終話ができるようにしたので、具体的な方法について記述します。

 

楽天Link で Bluetooth に対応させたのは、クルマ運転中のハンズフリーのためです。

 

 

受話を標準電話アプリにすれば素直に Bluetooth 対応できます。

 

ですがその場合の無料通話は発信の都度、楽天Link にログインする必要があります。

 

 

 

なので楽天Link はログインしっぱなしで、クルマ運転中だけをハンズフリーにしてみたのです。

 

 


運転中以外はスマホ操作で楽天Link での受話や発信、終話をしています。


 

本記事は Android スマホ向けの方法を記述しており、iOS 向けではありません、あしからず。

 

ここで記載の方法よって、楽天Link をログインしたままで Bluetooth 機器に対応させます。

 

楽天Link は、データ通信の不安定さなどにより標準電話アプリ呼出しになることがあります。

 

標準電話アプリ呼出しの場合は Bluetooth 機器側で操作が可能ですが、受話は自動着信化し、終話も楽天Link の場合と同じ操作でできるようにしており、操作上の混乱がないようにしています。


 

 

 

 具体的な方法の準備 

 

Tasker とそのプラグイン TouchTask を使用します。

 

 

また、NFC タグを終話イベントとして使います。

 

終話処理の自動化に際し NFC タグをスマホに触れてイベントを発生させます。

 

このイベントを契機に終話用のタスクを実行します。

 

 

拒否応答化も、NFC タグを活用して「応答用タグ」と「拒否用タグ」を用いてスマホにアテれば可能ですが、今回はそのような設定はしていません。


ーーーーー




 

 Tasker 使用上の準備と留意事項 

 

Tasker はプロファイルと呼ばれるトリガーを契機にタスクを実行する、という自動化ツールです。

 

構成要素にはほかにシーンと変数があります。

 

 

自動化ツールにはほかにも Macrodroid や Automate などがあり、前者は Tasker に似ています。


Automate フローチャート型の自動化ツールでわかり易いのが特長です。

 

IFTTT も自動化ツールの一種です。

 

 ーーー




 

Tasker でプロファイルやタスクを構成中に特別な権限許可を求められることがあります。

 

この場合は Tasker.Permissions.app を使用して権限許可するか、adb コマンド(SDK Platform-tools)で許可します。

 

これらを使用する場合は [設定] → [開発者向けオプション] → [USBデバッグ:オン] にし、スマホと USB 接続して使います。


なお、このときに [開発者向けオプション] → [USBデバッグ(セキュリティ設定)] も併せてオンを求められることがありますので、これもオンにしておきます。

 

USB 設定は [ファイル転送] モードにしておきます。

 

例えば adb コマンドで、WRITE_SECURE_SETTINGS 権限を許可する場合は次のコマンドを実行します。


 % adb devices
 
List of devices attached
 1234abcd    device
 % adb shell pm grant net.dinglisch.android.taskerm
android.permission.WRITE_SECURE_SETTINGS
 %

 

   ※ adb devices は スマホの接続確認
      "1234abcd" は接続されているスマホの識別記号

      

 

 

今回許可した権限は、

 

 ・DRAW_OVER_OTHER_APPS

 ・WRITE_SECURE_SETTINGS 

 ・LONG-CLICK_VOLUME_BUTTONS 

 ・APPLICATION_USAGE_STATS 

 ・WRITE_SETTINGS 

 ・ACCESS_HIDDEN_APIS 

 

の 6つです。






 やり方についての考え方 

 

 ❏ 着信

  Bluetooth 接続時は自動応答し、受話操作不要にする

  自動応答後はハンズフリー通話が可能です

 

 ❏ 発信

  標準電話アプリによる発信を楽天Link 発信に置き換える

  Rakuten Linkサポーターまたは Premium Dialer を使う

 

 ❏ 終話

  ① Bluetooth ヘッドセットの場合、マルチファンクションボタンで
    切ることが可能なヘッドセットがある

 

  ② カーナビなどの場合は NFC タグを利用して終話処理する

    NFC タグを利用すれば応答/拒否応答を使い分けできるが、ここでは
    触れない

 

    普段はシャツの胸ポケットにスマホを入れて外出しますのでこのスマホ
    に NFC タグをアテれば終話
するようにした


 

 

 

まず、自動応答のためには、通知領域で応答を求められる場合と、楽天Link アプリ画面で求められる場合があります。


 

「応答」ボタン座標位置を Tasker タスクで自動タッチするようにします。

 

私は Mi 11 lite 5G を使用中ですが、この機種の画面は 横 (x) 1080 x 縦 (y) 2400 画素です。

 

前者の場合「応答」ボタンの x, y 座標は、733, 360 です。

ちなみに「拒否」ボタンの座標位置は 360, 360 です。

 

この座標位置を TouchTask で自動タッチし、指でタッチしたことと等価な処理をするのです。

 



後者の場合は次の画面で「応答」ボタンの座標位置は 825, 2030 です。


今回使っていませんが「拒否」ボタンの座標位置は 260, 2030 です。




座標位置 x, y は「開発者向けオプション」の中の [ポインタの位置:オン] でタッチ点の座標がわかります。

 

座標位置はなるべく「ボタンの中心点」を目指しましたが、厳密には「ボタンの中心点近く」です。

 

「ボタンの中心点近く」で、実態的に問題はありません。

 

 

 

 

 

 Tasker でのプロファイル一覧 

 

プロファイルはトリガーになる事象を定義します。

 

「楽天Link に呼び出しがあったら」とか「ディスプレイオーディオ・Carpuride にスマホが接続したら」とかです。

 


 


 

7つのプロファイルを用意しています(あとの 3つはテスト用です)。 


 ① 楽天Link に呼出しがあった

   → 自動応答用のタスクを実行するように設定します

 

 

 ② Carpuride にスマホが接続した

   → ① のプロファイルを有効(オン)にするタスクを実行します

 

 

 

 ③ Carpuride からスマホが切断された

  → ① のプロファイルを無効(オフ)にするタスクを実行します

 

 

 ④ 終話処理(その1):音量ボタンが長押しされた

  → 楽天Link を終話するタスクを実行します

 

 

 ⑤ 終話処理(その2):NFC タグを検出した

  → 楽天Link を終話するタスクを実行します

 

 

 

 ⑥ 終話処理(その3):ヘッドセットの場合

   マルチファンクションボタンの 2度押しで終話するタスクを実行します


   ボタンの 2度押しで Tasker のダミーである「セカンドアプリ」が起動します

   「セカンドアプリ」を起動させるイベントを判定しています

 

 

 ⑦ 通話中は画面点灯を維持 

   楽天Link アプリまたは標準電話アプリが起動中(通話中)は、終話
   まで画面点灯を維持し、自動タッチで終話できるようにします

 

   これをしないと、スリープタイム経過後、画面が消灯して、終話のた
   めの自動タッチができなくなります

 

   これら 2つのアプリ以外の場合はシステム設定のスリープタイムがきた
   らスリープするのは変わりません 

 


 

 

④ は ⑤ の代替です。

 

 

終話(通話切断)は、

 

 1) 相手が切断(こちらも切断される)

 2) ⑤ で切断

 3) ④ はNFC タグ検出がうまく行かなかった場合の終話

 

というやり方になっています。

 

 

 

 

 

 各タスクの内容 

 

 ① 楽天Link に呼出しがあった場合に自動応答するためのタスク

 

  

  1) 通知を 3秒間表示し、その後で通知を消す

    これはスマートウォッチなどに楽天Link 着信通知を

    表示し、その後消さないといつまでも通知が残るからです

 

  2) 画面のアプリが「楽天Link」でない場合

    通知領域で着信通知された応答ボタンを自動タッチします

 

  3) 画面のアプリが「楽天Link」の場合

    アプリ画面の応答ボタンを自動タッチします

 

  4) 通話音量をレベル 8 に設定する

    またメディア音量を最大にする

    これはご自分の環境に合わせて設定ください

 

  5) 一連のタスク処理を終了

 

 

 ② ディスプレイオーディオにスマホが接続された場合

   プロファイル ① を有効にし、自動着信に備えます

   併せて「位置情報」をオンにします

 


 

 ディスプレイオーディオからスマホが切断された場合

   プロファイル ① を無効にし、自動着信化をオフにします

   併せて「位置情報」をオフにします

 


 

 ④ 終話処理

   3種類の終話処理(イベント)を用意しました

   音量ボタン長押し/NFC タグ/ヘッドセットボタンです

 

   NFC タグは ID でタグを特定することができます

 

   通話中のスマホ画面は楽天Link アプリの画面になっています

   終話イベント発生時(通話切断)は画面の 📞 ボタンを自動タッチします

   📞 ボタンの座標位置は 539, 2030 です

 


 

   標準電話アプリの場合の 📞 ボタン座標は 539, 2080 です

 


 

   両者の中間座標位置は x はどちらも同じ 539, y は両者の中間が 2055 で、
   これを終話時の自動タッチ点にします

   (楽天Link はボタン中心より少し上、標準電話アプリは中心より少
    し下)

 

   座標点 539, 2055 はどちらのアプリにも有効な座標点ですから、
   終話処理操作を同じタスクで行なえます
 

 

   2秒後にホームボタン を自動タッチしホームページに戻します

 

   これはアプリ画面をホーム画面に戻すためです

 

   ホームボタン の座標位置は 539, 2330 です

 

 

 

 ⑤ 通話中は画面点灯維持

   終話まで画面がスリープしないようにするためです

   スリープまで 3時間にしています(楽天Link の連続通話は 3時間まで
   らしい?)


   連れ合いと違い、そんなに長くは電話しません(笑)

 


 

 

 
 

以上がディスプレイオーディオに Android Auto 接続したときの楽天Link でのハンズフリーのやり方です。

 

「自動タッチ」タスクは TouchTask という Tasker プラグイン を使います。



 

この自動化によって Bluetooth に対応していない楽天Link をハンズフリー化できます。

 

発信は「OK, Google 〇〇に電話」とすると標準電話アプリから発信しようとします。

 

そこで、これを Rakuten Linkサポーターや Premium Dialer を使って楽天Link 発信に置き代えますと無料通話ができます。

 

 

まれにデータ通信が不安定などで楽天Link 着信ではなく、標準電話アプリへの着信になることがあります。

 

 

この場合は Bluetooth 対応できますが、混乱を避けるため標準電話アプリ着信も「自動着信」にします。

 

 

これも Tasker で自動着信化できますが、標準電話アプリの設定で行えます。

 

いまは Bluetooth 接続時に「自動着信」する設定をしています。

 

また 終話処理を同じ操作(音量ボタン長押し/ヘッドセットボタン/NFC タグ)でできますので、混乱がありません。

 

 

 

自動着信化は標準電話アプリを開き、右上の [] をタッチします。

 

[設定] → [通話アカウント] → [自動応答] → [自動応答:オン/自動遅延応答:3秒]/[常時] 


と設定すると、着信時は 3秒後に自動応答になります。


自動応答遅延時間は 0, 3, 5, 10秒 が設定できます。

 

3 〜 5秒 がいいでしょう。



スマホによって少し違うかも知れません。


実際 UMIDIGI s5 Pro の場合はこの設定はできません。



設定でできない場合は Tasker で少し手を加えればできます。






今回は、Carpuride W901 というディスプレイオーディオでハンズフリー化しました。

 

KENWOOD の Bluetooth 接続可能なカーナビでもハンズフリーを確認できています。



ディスプレイオーディオは地図情報が最新のものを使え、Android Auto(または CarPlay)で楽曲再生アプリを使ったり、と便利です。

 


Android Auto(または CarPlay)でないナビの場合、地図が年々古くなりますし、意外とナビ機能が使いづらいものです。

 

 

クルマメーカーの純正ナビもディスプレイオーディオ化の流れにあるようです。






2022-10-28

楽天Link でハンズフリー【その3】

 

 

【その2】では、カーナビで楽天Link のハンズフリー着信に自動応答する Tasker のプロファイル/タスクを構成しましたが、終話について課題を残していました。




10/13 以降ずーっと悩んでいましたが、ハンズフリーで終話処理が可能になる方法を考えました。

 

NFC タグを利用します。

 

終話処理したい場合、

 

 プロファイル:NFC タグを認識したら

        → 終話タスクを実行します

 

 

スマホを NFC タグに近づけるか、NFC タグをスマホに近づけるか、どちらでもいいのですが、後者の方がいいかな、と。

 

 

普段はスマホを胸ポケットに入れていますから、指輪状の NFC タグを胸に当てるだけで終話できます。

(胸がかゆいので掻く、という操作よりも簡単です - 笑)

 

 

指の太さ 20mm 程度は NFC タグが十分に認識できる距離です。

 

 

これなら準ハンズフリーです(スマホ操作はしませんから道交法違反にはならないでしょう)。

 

 

NFC タグはまだ手元にはありませんが、Suica カードがありますから、これで代用して終話を確認しました。

 

 

タグがあったのを思い出しました。

 

近所のガソリンスタンドでもらった、値引き用タグです。

これをガソリンスタンドのパネルに読み込ませると 2円/L 値引きが受けられるというタグです。

 

 

「このタグ(タグ ID で識別できます)が検出されたら」をトリガーにして終話処理するタスクを実行するのです。

 

うまくできました。

 

 

 

NFC タグを購入して設定すれば  OK  いろいろできそうです。

 

 

いまは呼出しで自動応答化していますが、例えば右指タグは応答、左指タグは拒否応答、というようなこともできそうです。

 

一定秒数経ったら自動応答にすることもできます。

 

 

もう少しアイデアを練ってみますが、とりあえず終話処理が可能になります。

 

 

 

 

 

2022-10-27

楽天Link を Bluetooth で発着信できたが、終話処理は難しい



楽天Link を Bluetooth 機器で発着信を行うことは、自動化ツール Tasker とそのプラグイン TouchTask により、できるようになりました。

 

 

ナビは Carpuride W901 という 9" ディスプレオーディオを AndroidAuto で使用中です。

 

Bluetooth 対応のカーナビも同様ですので「ディスプレイオーディオ」の部分を「カーナビ」に置き換えて読んでください。

 

 

 

Tasker は 4つのプロファイルと、それぞれに対応したタスクで構成しています。

 

 ① ディスプレイオーディオと Bluetooth 接続をトリガー

   → ③ を有効化するタスクと、GPS オンを実行

 ② ディスプレイオーディオと Bluetooth 切断をトリガー

   → ③ を無効化するタスクと、GPS オフを実行

 ③ Link に呼出しがあったことをトリガー

   → Link に自動応答するタスクを実行

 ④ 終話処理として音量ボタンダウンを長押しをトリガー

   → タスクは Link 切断

  

GPS オンは、ディスプレイオーディオに接続時にマップ用の位置情報を有効化するためで、オフは切断時に無効化します。

 

これはディスプレイオーディオ未接続時のバッテリー消費を節約のためです。

 

 

④ で終話処理できますが、これをハンズフリー化できなくて苦戦しています。





 やりたいこと 

 1) 楽天Link への着信をディスプレイオーデオで受けたい

   ハンズフリー通話のためです

 2) 発信は無料通話ができる 楽天Link から行いたい

   Link は常にログイン状態で使いたい

 3) ディスプレイオーディオで楽天Link の終話処理をしたい

   ステアリングスイッチ付きナビの場合これで終話したい

 

 

このうち 1) と 2) はできるようになりました。

 

問題は 3) です。


ヘッドセットの場合は、マルチファンクションボタンのダブルクリックで切れるところまではできるようになりました。

 

しかし、ディスプレイオーディオ側では切ることができません。


 

標準電話アプリの場合 Bluetooth 機器操作は問題なくできますが、楽天Link を前提の場合はなかなかに難しい。

 

 

理由は 楽天Link をデフォルトの電話アプリに設定できず、その結果 Bluetooth 対応できないことにあります。

 

 

楽天Link がつながってしまえば通話自体はディスプレイオーディオでハンズフリー通話が行なえます。

 

ですが、ディスプレイオーディオには着信通知はされず、着信操作や終話操作ができないのです。



 

カーナビやヘッドセットを Bluetooth 接続して使う場合、着信ボタンで受け、Googleアシスタントを利用して発信する、というやり方が一般的でしょう。

 

カーナビがステアリングスイッチを備えていれば、運転中の操作はハンドルから手を離さずにできます。

 

 

楽天Link に限らず、Bluetooth 接続は着信・受話と、終話処理がキモです。

 

 

運転中の発信ならば一旦停車して行えばいい、と割り切れば、発信は Bluetooth 機器での操作にこだわらなくてもいいかも知れません。

 

 

 

 

ーーーーー

 

さて楽天Link を利用しながら Bluetooth 機器対応するには次のような方法があります。

 

 

 方法1 

 

・着信時:標準電話アプリで受ける

 楽天Link をログオフしておけば標準電話アプリに着信しますから Bluetooth 機器
 側で受話、または着信拒否や終話操作ができます

 ログオフしないで、バックグラウンド通信をオフにすればログイン状態でも着信は標準電話
 アプリになります

 しかしこれでは、楽天Link から標準電話アプリへの切り替えに 10秒かかり、この間は呼び
 出し側は無音になります

 この無音状態が長いので、呼び出し側は通じないのか、と考えて切ってしまうかも知れません

 

・発信時:楽天Link に都度ログインして使う

 無料通話を使うためにはログインが必要です

 楽天Link 発信後の終話処理はスマホ本体で行う必要があります

 発信の都度ログインするのは結構面倒です

 

 代替策としてデュアルSIM でもう一方を 5分カケホにします

 5分以内はこれを使う






 方法2 


楽天Link をログイン状態のまま発着信を可能にする方法です。

 

・着信時:自動化ツールで着信を通知し、自動応答する

 Tasker や Macrodroid などを使い自動化します

 この方法の場合、自動応答しますので着信拒否応答ができません

 一旦受けたあとで「いま電話でお話できませんので、あとで電話します」といって切るしか
 ありませんが、この「切る」ことが難しいという問題があります

 

 いまは相手の切断待ちです(相手が切ればこちらも切れます)

 

・発信時:楽天Link でそのまま発信

 方法1 に比べて発信の都度ログインする必要がありません

 終話処理はスマホ本体で行う必要があります

 

 

 

 

どちらの方法の場合でも、Googleアシスタントで発信指示の場合は、標準電話アプリからの発信になり、有料通話になってしまいます。

 

これを防ぐには Rakuten Linkサポーターや Premium Dialer を使い、標準電話アプリ発信を 楽天Link 発信に置き換えます。

 

 

運転中の発信は、一旦停車して行えばいい、と割り切れば 楽天Link から直接に発信できます。

 

この場合は Rakuten Linkサポーターや Premiumm Dialer は要りません。




楽天Link 発着信の場合は、拒否応答や終話処理をどうするかという課題があります。


通話相手が電話を切ればこちら側も切れますが、こちら側で切る場合はスマホ本体で切るしかありません。

 

 

スマホ本体操作なしに、自動化ツールでなんとかできないか悩んでいます。

 

切る契機をどうやって得るか? です。

 

 

「切る契機」は自動化ツールでは「イベント」や「状態」などによって得ますが、これが難しい。

 

なぜなら「切る契機」をイベントトリガーとして、どう自動化ツールに伝えるかが難しいのです。

 

楽天Link アプリの通話中画面の、📞 ボタンタッチによる終話操作は、運転中は危険ですし道路交通法違反になりますからできません。

 

次善策として、スマホ本体の [音量ボタンクリック] で終話処理をする Tasker の自動処理化はできます。

 

📞 ボタンタッチに比べればスマホを見なくてもできますが、厳密にはこれも道路交通法違反かも知れません。

 

よって切る場合は一時停止して切断します。

 

 

楽天Link をハンズフリーで終話について、どなたかアイデアをお持ちの方がいらっしゃれば教えていただきたいのですが。。。。

 

 

 

 

 現時点のハンズフリー運用 


運転中だけ「方法2」で運用しています(自動的にそうなります)。

 

終話は相手の切断待ちですが、着信の場合は大抵は相手が切断します。

 

かけた方に通話料が発生するので終われば切るのでしょう。

 

それでも切断してくれない場合は一時停止して切断します。

 

運転中だけですので割り切ることにしました。

 

運転中にハンズフリーで着信を受けられる利便性がありますから。

 

 

 

 

2022-10-25

macOS のアップデート

 

 

【2022-10-27 追記】

 iMac 2019 を Ventura 13.0 にアップグレードしました。

 メイン機の Mac mini M1 はまだアップグレードは見合わせています。

 

 

一番変わったのは「システム設定」の外観です。

 

 

従来はアイコンだったものがサイドバーに一覧表示され、その中身が右側に表示されています。

 

 

Monterey 12.x は次のようにアイコンが並んだ表示です。

 

 

新しい表示方法の方が中身を含めてわかり易いですね。

ほかにも変更点はあるようですが、まだ試してはいません。 

ーーーーー

 

 

 

Monterey 12.6.1 へのアップデートと同時に、次期バージョン Ventura 13.0 へのアップグレードが降ってきました。

 

Monterey はアップデートしましたが、Ventura へのアップグレードは 1ヶ月は様子見で保留です。

 

 

以前に Catalina へのアップグレードでバグだらけのため、一つ前に戻した苦い経験があります。

 

その後 Monterey のアップグレードも 1ヶ月程度様子を見ました。

 

それでも Spotlight による SSD への異常書き込みがあって、Spotlight を停止したことがあります。



なので、世間で問題がなさそうというまでアップグレードは保留します。

 

 

 

 

 

2022-10-21

ドラレコ用の電源をどこからとるか

 

 

素直にはシガーソケットからとるのが簡単ですが、シガーソケットを別目的でも使いたい場合に、分岐型シガーソケットを付ける必要があります。

 

また、結構邪魔になって格好良くありません。

 

 

ドラレコの電源を ACC フューズからと、車両本体のアースからとろうと思ったのですが、かなり奥で少々作業がしづらい。

 

グローブボックスの奥にフューズボックスがあります。

 

グローブボックスを外しただけでは作業できず、その他の部分も外さないとできない車種で、素人には難しい。

 

ディーラーの整備士の方にうかがったら、配線コネクターを使って、シガーソケットの裏側の配線から分岐するのがやりやすいですよ、と教えていただきました。

 

 



 

下の青い部品がコネクターです。

真ん中は長い線の途中から分岐させた状態です。

一番上は白い線の途中で赤い線を分岐させた図です。


 

つまり元からある配線から分岐させて、必要な装置に電源供給するわけです。

 

コネクターは2個、それぞれプラス用分岐とマイナス用分岐に使います。

 

 

実際にドラレコ用の電源をシガーソケットの裏側の配線から分岐させて供給しました。

 

 

シガーソケット自体は本来の使い方ができますし、ドラレコも電源供給でき、車内配線が裏側に隠せてスッキリしました。

 

 

 

配線コネクターはカー用品店で、6個入り 400 〜 500円程度で売っています。


車種によって、フューズボックスからとるのが困難でなければ、ここからとるのが一番いいと思います。






2022-10-18

楽天モバイルはいろいろやってくれるから面白い

 

 

10月17日に楽天モバイルから請求書在中郵便が届きました。

 

 

何のことかと中身を見てみますと SMARTalk の 8 〜 10月利用分のクレカ引落しができなかったので請求書を送付した、とあります。


SMARTalk にログインして確認しますとなぜか、クレカ登録情報が「消えて」いて、クレカ未登録状態になっています。

 

 

そんなはずはありません。

 

私がクレカ登録を削除した覚えはないのです。

 

 

SMARTalk のホームページを見ますと 3月にクレカ変更不具合が発生しており、おそらくそのせいで私のクレカ情報が消えてしまったのではないかと思われます。

 



8月に 30秒未満の発信をしており、8円ほどの料金が発生しています(3月以降有料発信はこれだけ)。

 


 

 

今月 10月に、過去 3ヶ月分を引落ししようとしてクレカ未登録で引落し不可だったようです。

 

 

しかしながら、楽天モバイル側のシステム不具合によってクレカ情報を消しておきながら、未登録につき請求書兼振込票を送付、なんて笑っちゃいます。

 

 

今朝のうちに振込を完了しましたが、コンビニの店員さんも笑っていました。

 

 

8円の振込なんて大赤字でしょうね、と。

 

 

クレカ登録も SMARTalk にログインし改めて設定しました。

 

 

以上、楽天モバイル自作自演の不始末でした。

 

 

 

 

 

2022-10-17

ブログを整理しました

 

 

閲覧くださっている方々には申し訳ないのですが、記事を整理しました。

 

状況が変わったりして記事が現状にそぐわなくなっているものなどがあるためです。

 

 

いろいろと「ひとりごと」を記載してきましたが、そろそろ終活もしなくてはいけませんし(笑)。







2022-10-12

Tasker の新機能・Get Screen Info を使ってみた

 〜 Rakuten Link の Bluetooth 対応のため 〜

 

 

Tasker の最新バージョンは 6.0.10(2022/07/12)で、いくつかの新機能が加わっています。

 

1.new Tasker mode - Tasky: Tasker Made Simple

  簡易版の Taskerモード

2.Get Screen Info action 

  テキスト、URL など、現在開いているアプリに関する
  多くの情報を取得

3.root または adb Wifi なしで機内モード

4.特定のアプリで URL をブラウズ、または使用する
  アプリを尋ねるダイアログ表示

5.ロックされたデバイスのクイック設定タイル

6.Get Battery Info action

7.Get Pixel Color action

 

などなど。

 

 

ですが新機能の情報が少なく、詳細がよくはわかりません。



 

 

これらのうち、2番目の機能・Get Screen Info を使ってみました。

 

 

foreground アプリ(開いているアプリ)の確認は、これまでは、

 

 ❏ タスク編集 -> [プラグイン] -> [AutoInput] を選択し、

  [UI query] を実行後、%aiapp で「アプリ名」を確認

 


 

 

していましたが、

 

 ❏ タスク編集 -> [画面] ->

  [Get Screen Info (Assistant)] を実行後、

  %ai_app_name で「アプリ名」を確認、または

  %ai_app_package で「パッケージ名」を確認



 

ができるようになりました。

 

 

ほかの方法として、プロファイルとコンテキストで確認するやり方がありますが、処理が複雑化してうまくありません。

 

 

この新機能を使うと AutoInput プラグインを使わなくて済むのです。

 

AutoInput プラグインの機能自体はいいのですが、使うためにはフル機能が有料無料版は 30秒の広告動画を視聴する必要があり、ときにほかの広告も出ます。


一部機能のために有料版はもったいないし、さりとて無料版は広告の煩わしさもあります。

 

 

一方、Tasker ネイティブ新機能の Get Screen Info(Assistant) を使うには WRITE_SECURE_SETTINGS の権限を許可する必要があります。

 

権限は以下の adb コマンドを実行することで許可になります。

 % adb shell pm grant net.dinglisch.android.taskerm
android.permission.WRITE_SECURE_SETTINGS

 注) "taskerm" と "android.permission.~~" の間は一つ以上のスペース で空ける

 

 

 

実際のタスクの使い方は、次のようになります。


やりたいこと:

 開いているアプリが Rakuten Link ならば「アクション1を実行」し、
 そうでなければ「アクション2を実行」するタスクを作成

 

 

❏ AutoInput の場合

 

 AutoInput UI Query

 If 条件開始

  %aiapp eq Link

   アクション1

 Else

   アクション2

 End If 条件終了


  注) Rakuten Link のアプリ名は "Link"

 

 

 

❏ Get Screen Info (Assistant) の場合

 

 Get Screen Info (Assistant)

 If 条件開始

  %ai_app_package eq jp.co.rakuten.mobile.rcs

   アクション1

 Else

   アクション2

 End If 条件終了


  注) Rakuten Link のパッケージ名は "jp.co.rakuten.mobile.rcs"

     %ai_app_name 変数でアプリ名 "Link" を確認でもよい

 

 

 

なあ〜んだ、あまりかわらないじゃあないか、と思われるでしょうが、広告付きの無料版 AutoInput プラグインを使わなくて済むことは大きい。

 

AutoInput を自動起動/バッテリー使用制限無しにする必要もありませんのでバッテリー消費も少なくなります。

 

 

上記の事例は、Rakuten Link を Bluetooth に対応させて、電話呼び出しがあったときに自動応答するためのタスクの作成で使っています。

 

 

Rakuten Link への呼び出しはスマホがロックしているかどうかで違います。

 

ロック時は呼び出しで Rakuten Link アプリが開かれます。

 

ロックが解除されている状態では通知領域に呼び出し応答するかどうかのダイヤログがでます。

 

 

この状態の違いを検知する必要があります。

 

そのために上記事例のような処理をしたのです。

 

 

したがって 楽天Link でハンズフリー [その2] から一部変更になっています。

 

 

 

 

 

 

2022-10-08

楽天Link でハンズフリー [その2]

 

 

Rakuten Link はデフォルトの電話アプリにすることができません。

 

このことが Bluetooth をサポートできない理由です。

 

また、ユーザー補助機能の「電源ボタンで通話を終了する」こともできないのです。

 

 

本記事は Android を前提に記載しています。

 

 

iOS の場合は、相手が Rakuten Link ではない場合、標準電話アプリに着信します。

 

相手も Rakuten Link 時は、こちらも Rakuten Link に着信します。



 

 

 

【2022-10-10 一部修正】

 プロファイルとタスクをブラッシュアップしました

 (画面コピー部分とその説明が一部修正)

 

 

楽天Link でハンズフリー [その1] での Tasker の設定を見直し、修正追加しました。


 

Rakuten Link が Bluetooth 未対応のため普段はログオフして標準電話アプリに着信させ、発信時にログインして使うのが結構煩わしいのです。


ピュア VoLTE の安定性や音質も捨てがたいのですが、やはり利便性が優先します。


Rakuten Link をログイン状態のまま Bluetooth 接続時の着信問題を解決するべく楽天Link でハンズフリー [その1] から一晩考えて、なんとかできるところまでやってみました。

 

 



[その1] での問題点は Rakuten Link への着信が安定しなくて、ときに標準電話アプリ着信になることでした。

 

 

そこで、まずは Rakuten Link への着信の安定化をはかります。

 

データ通信を楽天モバイルにすると不安定さが増すようなので、デュアル SIM のもう一つの SIM である OCNモバイルONE をデータ通信 SIM にします。


楽天モバイルをデータ通信 SIM にすることに比べて、Rakuten Link 着信率が大幅に改善されました。


どうもウチのエリアは楽天モバイルの電波状態が安定的ではないようなのです。

 

 

 

一方、標準電話アプリへの着信は、アプリ設定で Bluetooth 接続時は「自動応答」にしてあります。

 

 

よって、Bluetooth 接続時は Rakuten Link または標準電話アプリのどちらに着信しても自動応答されます。

 

 

そこで Rakuten Link 着信時の自動応答を Bluetooth 接続時に機能し、切断時は通常着信するように Tasker を修正します。

 

 

 

自動化ツールである Tasker のプロファイルですが、4つあります。

 

なお、Tasker と連携させるアプリとして AutoInput、TouchTask、ButtonMapper も使います。

 

また、Tasker と ButtonMapper 連携は Tasker のダミー機能である TaskerSocondary を介しておこなっています。 


 

一番上の「LinkCalled」は [その1] で作成した Rakuten Link 着信時の「自動応答 Task」用プロファイルのアップデート版です(名前を変更しました)。

 

 

if 条件での帯部分は、通知領域で着信が通知されたときの応答ボタンのタップです(スマホがロック解除されているときの呼び出しの場合)。

 

の帯部分は Rakuten Link アプリが起動されたときの応答ボタンのタップです(スマホがロックされているときの呼び出しの場合)。

 

通話音量ボタンは、ヘッドセットが一定の音量になるように設定しています。
 

 

2番目は、Bluetooth 機器の接続状態がオンならば「LinkCalled」プロファイルをオンにし、自動応答を有効にします。

 


 

3番目はBluetooth 機器の接続状態がオフならば「LinkCalled」プロファイルをオフにし、自動応答を無効にします。

 


 

 

つまり、Bluetooth 機器の接続状態で Rakuten Link への着信に自動応答するかどうかを決めています。

 

この事例ではヘッドセット HPS04 接続の有無で判別しています。

 

ナビを対象にする場合はナビの Bluetooth 名を判定対象にします。

 

 

 

これによって、Bluetooth 接続時は Rakuten Link への着信でも、標準電話アプリへの着信でも自動応答になります。

 

 

Bluetooth 非接続時は通常着信になりますので、スマホの着信操作で受けることになります。

 

 

 

この方法ならば、Bluetooth サポートしていない Rakuten Link の着信に自動応答が可能になり、ハンズフリー通話ができるようになります。



 

さて、Rakuten Link の終話は次のいずれかの方法になります。

 

 ① 相手が切るまでそのままにする → 自分も切れます

 ② Rakuten Link 画面の切断ボタンをタッチ

 ③ 音量ボタンを「電源ボタンで終話」の代わりにする

   音量ボタンのアップを押したら終話になるように自動化

   Rakuten Link 画面の切断ボタンを自動タッチします

   このようなプロファイルとタスクを作成するのです


本体の音量ボタンでは切れますが、ヘッドセットの方からは切れません。



その後、

 

 ④ Button Mapper と Tasker を連携させ、ヘッドセットボタンで切断

 

ができるようになりました。

 


4 番目のプロファイルの最初のアクションですが、Button Mapper によってヘッドセットボタンが押されたことを検出、Tasker 連携して Rakuten Link の 📞 ボタンのタップで終話します。

 

二番目のアクションはホームボタン をタップしてホームに戻す処理です。

 

 

これによっておそらくナビの場合でも、終話ボタンで切れると思われます。

 

ナビについては今週末までに検証する予定です。

 

 

【2022-10-13 追記】ナビについて検証しました

ナビの 📞 ボタンはヘッドセットボタンとは同じ扱いにはならず、残念なことに切断できません。

 

また音量のアップ/ダウンボタンもスマホ本体のものしか認識しませんので、ヘッドセットやナビの音量ボタンで終話するようには設定できません。

 

通話相手の切断でこちら側も切れるという「受動的な切断」に頼るしかないのでしょうか。






ハンズフリーで電話発信する場合は、標準電話アプリでの発信を Rakuten Link に置き換えるやり方でできます。

 

これは Rakuten Linkサポーター か、Premium Dialer を使ってできます。

 

 

 

 

おまけ

 

Tasker で作成したプロファイルの試験のために、IIJmio から Rakuten Link への発信テストは、ナント 250回以上になりました。

 

IIJmio は 5分カケホが付いていますので 250回かけても通話料は無料です。