Joinで通知同期したときに、すぐ通知が見られるようにする

Kospet Prime2では、Bluetoothによる親スマホとの通知同期より、LTEを介して通知同期したほうが省電力です。しかしながらJoinによる通知はデフォルトのホームアプリwiiteでは即座に通知画面にならないという制約があります。

 

と言うことでAutomateを使用して強引に解決してみました。

 

 

 

作ったもの


Automate for Android ⋅ join show 2.6.2n

 

 

Full Android Smart Watchにて、Joinで親スマホと通知同期させた場合、通知取得時に自動的に通知表示画面にならないので、これを力業で強引に解決したものです。


前提
- Smart Watch側でNotification Bright Screenがオンになっている。
- Joinにてスマホ側からSmart Watchに通知を送っている。
- ホームアプリはデフォルトのwiite
- ホーム画面は時計表示である。
- Kospet Prime2とRogbid Brave Proにて動作確認。


動作
- Joinにて通知が来た場合、左からスワイプして通知を表示する。Vibration強を追加し、6秒表示後、右からスワイプして時計画面に戻し、画面をロックする。
- 最初の通知から9秒以内に追加の通知が来た場合には表示時間を延長する。
- ホームアプリwiite以外がフロントに来ている場合には動作しない。また、Joinからの通知到達時に画面がオンの場合にも動作しない。
- Flow Beginning: stopのフローを外部などからスタートさせた場合、動作を停止する。別に組んだジェスチャー操作にてここを叩かせることで意図しない動作を止めるもの。


https://youtu.be/X5mCdiMobsk

 

 

蛇足

別フローからファイバーをキルする方法がよくわからなかったのでatomicを使用して強引に解決してますが、なんか上手い方法あったら知りたい。

 

注意点としてはファイバーが分岐するときにatomicではない関数はそれぞれのファイバーに別れて付いていき、フロー全体で共有されないので、Stop Fiberの手前にてChild FiberのURIが関数に格納されていなければ、Stopさせられない、ってことかなぁ。