WatchDroidで受けた通知を識別して任意のアプリを起動する
私はJoinとWatchdroidを使用しています。主にBluetoothでの消費電力がなんか怪しいKospet Prime2はJoinを、なんかどうやっても40時間切るくらいしか保たないRogbid Brave ProはWatchdroidで連携させています。
で、JoinとWatchdroidの違いは幾らでも有りますが大きな点に「Joinは、通知を受けた際に、受けた側で同じアプリ、場合によっては同じ内容まで表示できる」というモノがあります。なんか前にも同じこと書いた気もしますな!
折角だからWatchDroidでも通知を出した大元のアプリを起動出来るように頑張ろうとして力尽きた。
考え方
- Automateで実装する。
- Watchdroidで通知を受けた後、履歴リストに記録される。(Watchdroidの機能)
- マクロ起動は手動で行う(POP UP Widget経由)。
- 履歴から該当の通知を表示してマクロ起動。タイトルを格納する。
- タイトルを識別して、当てはまるアプリを起動する。
問題点
- 1つのアプリから発行される通知は、タイトル1種類じゃないの。沢山あるの。おっぱい。
- 例えば、SmartNews。CMまでしてるお金あるニュースアプリですね。ブルジョアが。このアプリで通知されるタイトルは、「SmartNews」、「今日の PICK UP」です。
- 例えば、NHKニュースの場合、「INFO」「ニュース速報」「最新ニュース~」です。
- Gmailに至っては、タイトル=メールの題目なので、識別すら出来ません。
- Lineやらもタイトルが相手の名前なので識別難しいですが、そもそもWatchDroidはLineなどに返事出来るので気にしなくても良い?
- こういったタイトル全部に識別を付けなければならず、処理フローのブロック数は膨大になります、、そしてJoinのように内容まで同期させることは出来ません。
まあサンプル程度のつもりで、
NHKニュースとSmartNewsの2つについて起動させるサンプルflow作ったので参考にでもしてください。
NHK NEWS & Disaster Info - Apps on Google Play
SmartNews: Local Breaking News - Apps on Google Play
Automate for Android ⋅ inspect_and_start_v0.4
補足
例のごとく、フロー開始直後のInteract TouchとDelayブロックはPOP UP Widgetから起動する際のPOP UPを消すものと少しだけ起動を待つものです。POP UP Widgetを使わない場合は不要です。
title識別はInteractブロックのInspectを使ってます。Package、UI element class、UI element IDを指定することでtitleをcontentに格納できます。工夫したのはそこくらいで、あとは普通のマクロのはず。
よい時計を。