スマホとスマートウォッチで超強引に同じアプリを起動させる

Joinてありますよね。スマートフォンとパソコンとか、あるいは別なスマホとで通知を同期させてくれるすごい奴です。Android Smart Watchの場合、ちょっとJoinの通信が多いようでバッテリーの消費がビッグなのがタマにキズです。タマタマにキズ。イナさんのエッチ。

 

Joinの何が便利って、例えばスマホからニュースアプリで通知が来たばあい、時計側でJoinの通知をタッチすると同じアプリを開いてくれたりするんです。Lineの返信も出来ますし、Google Musicの制御なんかもできちゃう。

 

と言うことでDual Chipな端末(LEMFO LEM9

やKospet Optimusなんか)でBLEを最大限に無理矢理、気合いと根性と魂の叫びで何とかするために考えた!なお、使い勝手はカスである!

 

基本方針

wiiwatch2はアホの子で起動したアプリのパッケージデータなんかをAndroid Smart Watch側に送らない。なので強引に通知を出したアプリの情報を時計に送り、時計側で通知に合わせて同じアプリが起動できるようにするッス。

 

  1. スマホ側は全てAutomateで通知を合成する。なんかタイトルにアプリパッケージを格納する。
  2. 時計側はタイトルパッケージを見てアプリを起動する。
  3. めんどくさいのでループ処理にならないようにするのはAutomate自体とwiiwatch2の通知のみ。頑張ればホワイトリスト化して判別とか出来るハズですが素人なのでそこまでやらぬ。だれかやって。

 

スマートフォン側でAutomateで通知を合成するフロー


Automate for Android ⋅ notification_automate

 

  • wiiwatch2のアプリ通知でAutomateをオンにします。
  • Automateの通知をブロックしないこと。
  • Automateとwiiwatch2以外の"on going"フラグが無い通知が通知領域にでた場合、タイトルと本文を合成して本文に、アプリパッケージをタイトルに格納します。
  • Automateがそれを通知領域に出します。
  • するとwiiwatch2がその通知をBLEで時計に送ります。

 

 

Android Smart Watch側のフロー


Automate for Android ⋅ BLE_apps_start

 

  • wiiwatch2からのBLE通知を受けている時計側のdevicedeamonが通知を出します。その通知のタイトルに格納されたアプリパッケージを起動します。それだけ。
  • おわかりのこととは思いますが、スマホと時計の両方に同じアプリが入ってないと意味ないです。
  • 取りこぼしはする。しょせんはしろうと…