トリガーまで待機のアクションで、条件を通知が消去されたときにした際に、Android16+のグループ化をしない通知設定にすると発生する不具合の解決法を模索したものです。
解決はしていません。
1.目覚ましアラームを停止
2.目覚まし停止 で Geminiに家の電気付けたり予定とか天気を読み上げ
3と連携するための通知を出力
3.連携通知表示 で スマホやスマッチを決まった設定に戻す
4と連携するための通知を出力
4.連携通知表示 で 朝の健康管理ルーチンマクロ実行
なんですが、朝の健康管理ルーチンの動作が変になっちゃいました。
マクロは単純明快なもので、上から下まで流れるだけです。
トリガーは上記の3からの連携通知出力だけです。
で、動きがおかしくなったのが、通知消去まで待機するトリガのところなんです。
筋トレ器具を使って毎朝筋トレするんですが、器具に座るまで待つために通知の消去をトリガにしています。通知を消すとマクロが続行されます。
この動きは完全に正しく動作しているんですが、この通知を消すと、このマクロが新規で開始されちゃうんです。
このマクロは、万が一途中で何かあった際にマクロを再実行すると途中から再開できるようにローカル変数で進捗を制御していて、ローカル変数の数値によって再開場所を判定しています。
で、丸印の通知消去のトリガ解除(通知を消去したとき)すると、別インスタンスでマクロが実行されて、再度筋トレ器具に座るのを待つロジックが動くんです。
でも、最初に実行されたインスタンスのマクロは問題なく動作するので実質支障はないんですが、気持ち悪いのでユーザログを出力して確認してみました。
黄色い枠がマクロの一連ですが、筋トレ器具に座ったら消す通知を消した際に、
通知が消去された時
トリガでマクロが開始されていました。
こんなトリガはこのマクロには無いんですが、なぜか実行されるようになりました。
今までは問題なく動いていたんですよ。
AndroidかMacroDroidのアップデートで挙動が変わったんだと思いますが、設定していないトリガでマクロが動き出しているので問題はMacroDroidの方だと思っています。
手っ取り早い解決策は、マクロ実行中を判断できるローカル変数使って、重複起動された時は何もせずにマクロを終了させる方法なんですが、そもそも想定していないトリガでマクロが動き出すという不具合は問題ですよね。
2026.03.30追記
依然として不具合が解消されていません。
取り敢えず、ローカル変数でマクロが稼動中かを判定して、後から起動されたインスタンスを中止するようにしました。
黄色い矢印の個所が悩んでいる不具合部分なんですが、下から2行目でも同じことが起きてますね。
下から2行目は、スマッチで筋トレのアクティビティを停止した後に、手で通知を消してマクロを継続する部分です。
不具合が出ているのは、両方とも「トリガーまで待機」で「通知が消去されたとき」ですね。ウチのMacroDroidで通知消去まで待機を使っているのは、このマクロだけでした。
で、このマクロで2か所とも不具合が発生していますね。
システムログを見ると、待機していたマクロがトリガー発生でレジュームしてるんですが、同じタイミングで呼び出しまでされています。
トリガーまで待機の設定は至ってシンプルなのでミスるようなところは無いんですよね?
実際にトリガー発生でマクロ継続できているし。
だとすると、通知の方ですかね?
試しにシンプルなマクロ作って色々試してみました。
通知を出して、消すまで待機、消されたらポップアップ表示です。
先ずは不具合の出ているマクロと同じ設定の通知出力です。
「Android16+の機能「グループ化」をしない」にチェックを入れています。
これで通知を消すと、2つとも通知が消されてしまうので、「Android16+の機能「グループ化」をしない」にチェックを入れています。
マクロがシンプル過ぎて消しても消しても通知が表示されました。
で、試しに「Android16+の機能「グループ化」をしない」のチェックを外してみました。
これだと通知を消去する際に、複数の通知を展開して対象の通知だけを消去しないといけないので面倒なんですよ!
想定通りの動作になりました!解決です!
とは言えグループ化されるのが鬱陶しいので、何か方法は無いかと考えていたら、通知を表示の中に「通知グループ」って設定ができてるじゃないですか!
この通知グループに一意になるような名称入れればイケんじゃね?
もちろん、通知を消去で不具合も発生しません。
通知を消すとレジュームと呼び出しが両方動いてしまいます。
ただ、呼び出しが動かずに想定通りの動きをしてくれる時もあります。
1回のマクロ実行で、繰り返しレジュームと呼び出しが発生しているんですが、一番下の行は呼び出し無しでマクロも正常終了です。
これは流石にMacroDroidの不具合って言っても良いですよね?
早いとこ対策して欲しいなぁ。
でも、トリガーまで待機で通知消去以外の条件を使ってるマクロでは発生しないので、もしかするとAndroid側の問題だったりするんでしょうかね?



コメント
コメントを投稿