ごく短時間で発生する複数の通知内容をそれぞれ区別・処理したい

raad

New member
表題の件、扱いに困っています。
考えられる状況として、とあるアプリがごく短時間に複数発生することに起因しているようです。

そのアプリは“番組表に沿った放送”で動画コンテンツを配信をしており、最新コンテンツ配信の事前通知をMDでキャッチして各種処理させています。
該当コンテンツは、ほとんどの場合に直後からオンデマンド配信に対応するので影響は少ないのですが、最速(“放送”)で視聴したい衝動が。。。

長くなりましたが、背景は以上です。


ごく短時間とは正確に時間は計れないのですが、体感として1秒未満です。
システム側でアプリ通知をポップアップさせている場合、通知が複数表示されたことも気がつきにくい重なり方をするような状況です。
※通知が下に追加されていくようなシステムUIの場合には、どのような挙動になるかはわかりません

新しい通知が表示されると、マジックテキストが置き換わる挙動はわかります。
「複数のトリガーをまとめる」がオフで、マクロが複数起動する状況も確認できています。
しかし、ごく短時間で複数発生すると、マジックテキストが後続?の通知内容になってしまうのか、ほぼ同時起動するマクロのいずれも同じ通知内容を受け取ってしまいます。

通知内容はコンテンツ名部分が変化するのでそれをトリガーにすればいいのですが、頻繁に変化するので毎回のマクロ編集は現実的ではないです。
そうすると『開始します』のような固定テキストが監視対象になるのですが、ここでごく短時間の問題が出てきます。

対策として、マクロ起動したら即アクションブロックに丸投げ(マジックテキストを展開して渡す)もしてみましたが、意図した結果とならないこと(複数の通知を区別できない)があるようです。

同一アプリから、ほぼ同じ内容の通知(コンテンツ名やユーザ名だけが違うなど)がごく短時間に複数発生することは、どのような環境でも発生しうると思いましたので、上記の背景に記載したアプリに限定しない内容としています。

単純に端末性能次第かもしれませんが、可能な限り回避できる手法があると幸いです。

-----
利用環境:Pixel 7(SIMフリー) / OS13、MD(最新化済み)
 

JA-Translator

Moderator
「複数のトリガーをまとめる」がオフで、マクロが複数起動する状況も確認できています。

その「まとめる」をONにすることでのメリットはないのでしょうか?


マジックテキストが後続?の通知内容になってしまうのか、ほぼ同時起動するマクロのいずれも同じ通知内容を受け取ってしまいます。

はい、そのとおり!ご指摘にとおり、マジックテキストは「動的にリアルタイムで値を拾える」がメリットです。

ちなみに、、、
全ての値を保存したければ、配列の変数を作成して、毎回、追加で保存していく、が使えそうです。


ごく短時間とは正確に時間は計れないのですが、体感として1秒未満です。

なるほど。
であれば、これはいかがでしょうか?

[条件]→【直近に実行した/実行してないマクロ】

これで、「直近10秒以内にマクロが動作していない場合」を追加すれば、ダブッて動作しません。


条件は、トリガーの直下に「ぶら下げ条件」として追加も可能です。


もう少し具体的な切り分けしたい「キーワード」を解析すると、別の案もあるかもしれません。
いくつかパターン化して、例えば、「キーワード1」なら、こうする。「キーワード2」なら、ああする。とか。

通知トリガーで「指定の文字」で、ぶら下げ条件を使用するのは、いかがでしょうか?
 
Last edited:

raad

New member
返信ありがとうございます。

その「まとめる」をONにすることでのメリットはないのでしょうか?

はい、そのとおり!ご指摘にとおり、マジックテキストは「動的にリアルタイムで値を拾える」がメリットです。

動的に拾えるのがメリットですが、個々の通知を区別したいので、「まとめる」をオンにする切り分けをやっていなかったので、試してみようと思います。
直近の通知しか拾えなそうで、変な先入観があるのかも?
複数の通知を区別する「区切り文字(空行など)」が入っており、かつ、容易に判断できればいいのですが。。。

※「まとめる」は通知トリガーの設定オプションを指しています

ちなみに、、、
全ての値を保存したければ、配列の変数を作成して、毎回、追加で保存していく、が使えそうです。

ご指摘の動作が、やりたいこと(それぞれの通知内容に応じて別の処理をしたい)の一歩目です。
が、先行?の通知内容が取り込めないので、その一歩目が踏み出せない状況(異なる通知内容なのに、同じ値が記録される)なのです。。。

であれば、これはいかがでしょうか?

[条件]→【直近に実行した/実行してないマクロ】

これで、「直近10秒以内にマクロが動作していない場合」を追加すれば、ダブッて動作しません。

先の「まとめる」オン時に意図しない挙動になった場合には、利用を検討します。
「まとめる」オフの現在では、ほぼ同時起動したマクロそれぞれで別の内容が拾えると考えていたので、多重起動は意図したものとなっています。

もう少し具体的な切り分けしたい「キーワード」を解析すると、別の案もあるかもしれません。
いくつかパターン化して、例えば、「キーワード1」なら、こうする。「キーワード2」なら、ああする。とか。

例示したアプリでは、「“放送”開始」と「コンテンツ追加」の通知を利用しており、この2種は別のマクロとして分けています。

ただ、共通して「当該アプリにおけるコンテンツ名」部分が変化するのみで、それ以上のパターン化は難しいです。
厳密にはコンテンツ名もある程度のパターン化ができるのですが、頻繁に内容が変化し、予想外の変化パターンとなることがあるため、取りこぼしの発生が怖いところです(そもそも本件アプリはエンタメ系なので全く困らないのですが)。
 

JA-Translator

Moderator
そのキーワードの識別(区別)が、今回のポイントになりそうですね。

先に切り分けておかないと、アクションブロックに渡しも上手く処理できないので。

どーゆーキーワードなのか、いまいちイメージできないので、こちらもボヤっとしたアドバイスしか出来ませんが、

今回のポイントになりそうな、つまりトリガーの切り分けに注目して、
まず先に、お知らせだけ。

子条件も便利ですよ。
こんな感じ


Screenshot_20230326_124244.png
 

raad

New member
そのキーワードの識別(区別)が、今回のポイントになりそうですね。

雑編集ですが、実例を掲載してみます。
(特定アプリに限定しないことを念頭にお願いします)

Screenshot_20230326-162644~2.png

本件の場合、トリガーとなるテキストは『放送開始』としています。
で、記録したいのは通知本文の『「コンテンツ名」の放送が、まもなく始まります。』です。
実際には、この本文を元に追加の処理が別に走りますが、それぞれの通知を区別できればいいので、その先については本件質問の対象外です。

これまで、コンテンツ名がAAAとBBBについてごく短時間で通知が発生した場合、マクロが2重起動しますが、どちらもBBBとして記録される状況でした。
さきほど、「まとめる(複数のトリガーを1つとして扱う)」オプションを有効にした別の試験用マクロを作成したので、これから通知の多くなる深夜に向けて放置してみます。
試験結果(と改善策)については、改めてご連絡できればと考えています。
 

raad

New member
さきほど、「まとめる(複数のトリガーを1つとして扱う)」オプションを有効にした別の試験用マクロを作成したので、これから通知の多くなる深夜に向けて放置してみます。
試験結果(と改善策)については、改めてご連絡できればと考えています。

途中経過ですが、すでに何度かごく短時間の事例が発生していますが、希望しているデータは記録できていないようです。。。
そのまま最終結果(失敗)として判断するかもしれません。

外部アプリがうまいこと利用できないか、通知管理系?のアプリも探してみようかと思います。
 

JA-Translator

Moderator
途中経過ですが、すでに何度かごく短時間の事例が発生していますが、希望しているデータは記録できていないようです。。。

あら… そうでしたか、残念:cry:


外部アプリがうまいこと利用できないか、通知管理系?のアプリも探してみようかと思います。

そうですね、何か他の通知系があるといいですね


あるいは、MacroDroid で頑張るなら、
通知トリガーの代わりに、
「画面コンテンツ」トリガーとか?
どうでしょう、使えませんかね?

(画面コンテンツは、私はまだ使ったことがないので、いまいち有力なアドバイスは出来ませんが)

お役に立てずスミマセン😓
何かヒントになりますよーに。
 

Dimlos

Well-known member
MacroDroidでノーウェイトでループさせて通知を表示させ、別マクロで拾ってみました。
3回位のループなら配列に内容を取り込めましたがそれ以上になると正常に取り込めませんでした。

通知トリガーの限界だと思いますがざっくり1秒に3回以上通知が重なる場合は正確なデータは取り込めないと思います。
 
Last edited:

Dimlos

Well-known member
英語セクションで似たような質問があり、開発者が修正する旨の回答をしています。

今後のバージョンアップで解消されるかもしれませんのでお待ち下さい。
 

raad

New member
英語セクションで似たような質問があり、開発者が修正する旨の回答をしています。

今後のバージョンアップで解消されるかもしれませんのでお待ち下さい。

ご連絡ありがとうございます。

機械翻訳でナナメ読みですが、ほぼ同様な事象の内容のようですね。
また、今後に期待できそうだということが分かりました。

対策されたバージョンが公開された場合、適用後の挙動についてどこかで報告できればと思います。
ありがとうございました。
 
Top