X



【自動化】MacroDroid Part2【マクロ】

レス数が1000を超えています。これ以上書き込みはできません。
2021/06/10(木) 21:12:18.64ID:9Bzw24As
文字列の変数を複数設定する事はできますか?例えば果物という変数を設定して
りんご いちご めろん
とか複数指定しておいて条件分岐でどれかと一致したら実行するというのをやって
みたいのですが
2021/06/10(木) 21:45:13.88ID:bKsv48oS
>>834
適当にデリミタとデータ構造決めて連想配列っぽいものを自前で作ればできるよ
例 { 果物: りんご, いちご, めろん }
取得と格納は正規表現と文字列操作でやる
判定はif文で欲しい文字列を含むかをみればいいから簡単
2021/06/10(木) 22:04:11.64ID:yg/u4nnL
プラグインでjsonかxmlから取るとか
termuxでjq使うとかでも
2021/06/10(木) 22:18:23.40ID:9Bzw24As
変数の値の所で区切り文字を入れて入力すれば良いかと思っていたのですが
どうやらそういうものじゃないみたいですね

ちょっと書いて頂いた事が高度すぎて私にはすぐ理解できそうにないです
時間のある時にググって勉強してみます
2021/06/10(木) 22:28:05.98ID:bKsv48oS
>>837
キーでアクセスしなくていいなら思ってたとおりでいいと思うよ
こういうことをやりたいんだと思ったんだよ
例 { 果物: りんご, いちご, めろん }, { 野菜: だいこん, にんじん, ピーマン }, { おやつ: バナナ, うまい棒 }, { デザート: ガリガリ君 }
2021/06/10(木) 23:10:07.78ID:9Bzw24As
ifの条件に変数と正規表現を使って値にりんご|いちご|めろんとする事でなんとか
目的は達成できたようです

正規表現というヒントを頂いてありがとうございました
2021/06/11(金) 14:12:29.67ID:056Aw3Us
ブラウザでさ、ページの読み込みが正常に完了したのを検知するにゃあどうしたら良いんだ?
そういうコマンドある?
あるいは、画面に特定の文字列が表示されてるか確認する方法ある?
例えばここだと、「レス数が1000を超えています。これ以上書き込みはできません。」か「レスを投稿する」
あるいは「404 not found」とか「オフラインです」とか

最後の最後で躓いちゃってるわ・・・
841名無しさん@お腹いっぱい。
垢版 |
2021/06/11(金) 14:13:29.75ID:Y5rn/TJN
ストラバで走行移動時の通知にだけヒットする設定を試しているんですがうまくいきません。
自動停止中や中止中は単純に含む文字列の指定でヒットするんですが
テキストが(null)の通知だけ拾うにはどうしたらいいでしょうか。
通知をトリガーにする時に正規表現を使う項目がありますがあれは動作しますか?
対象アプリが発する通知テキストがnull以外のすべての通知を虱潰しに除外しようとしましたが
含むや除外で指定するテキストは半角スペースやカンマで区切っても複数指定はできないようでした。
2021/06/11(金) 14:35:47.46ID:j/1rpZCX
>>841
自分も詳しくないのですが実際にやってみれば良いと思います。正規表現を使用するに
チェックをいれて○○|□□|△△のように複数指定して|で区切ってみてはどうでしょうか?
正規表現では|はOR条件になるので上手く動作するかもしれません。
2021/06/11(金) 17:22:08.97ID:i3mYB6Aw
>>840
ヘッダを見ればhttpのエラーは分かるよ
てかGETがアクションにあるからエラーも取れるしデータ本体内の文字列も拾える
ブラウザで読み取るのが必須で連続で2回アクセスすると内容が動的に変わるなら表示されたページからtouchtaskプラグインで取って期待する文字列が含まれるか調べればいいよ

>>841
ざっくりならこれでたいてい済むんじゃ?
. 任意の1文字にマッチ
.+ 任意の文字が1文字以上連続する文字列にマッチ
.* 同0文字以上に文字列にマッチ
2021/06/11(金) 18:43:48.95ID:6Wrx9cbx
>>843
あ゛あ゛あ゛あ゛あ゛あ゛
すびばせん
「GETがアクションにある」
って、も少しヒントをぉー

それって、ブラウザのアドレス欄にアドレスを打ち込む時に、同時にどっかに何かするんだよね?きっと。
2021/06/11(金) 18:55:04.07ID:6Wrx9cbx
Intent を送信して、startActivityForResult() とか onActivityResult() とかいうので受け取る感じ?
プライベートタブのアドレス欄に直接UIからアドレスを打ち込んでたら受け取れないってやつ?
2021/06/11(金) 19:13:17.65ID:i3mYB6Aw
んーと
httpの通信は別にブラウザじゃなくてもいいわけで
macrodroidのアクションコマンドでHTTP GETが送れるでしょ
静的なページはもちろん動的に生成されるページでもページ単体で完結するものとかあらかじめGET渡しのパラメータが分かってれば別にブラウザ使わなくていいよね

もう一つの選択肢はどうしてもブラウザが必須だとしてそれなら出力されてる内容をプラグインでスキャンしちゃえば望む結果が得られるよ
847841
垢版 |
2021/06/11(金) 19:15:38.48ID:YkXs+RKL
>>842 >>843
ありがとうございます!
|で複数キーワードを除外するとうまく動作しました!これは便利ですね。

ちなみに.*を除外すると任意の通知まで除外されてしまいました。通知のテキストはnullのはずなんですが・・・
キーワードをnullと書いてもヒットしませんし、除外で拾うしかない感じです。
通知のキーワードはテキスト欄以外の部分をスルーする仕組みなんでしょうか。
通知タイトルなどに含まれる文字をキーワードに指定してもヒットしない感じがします。
2021/06/11(金) 19:40:10.65ID:i3mYB6Aw
>>847
文字列に何もなかったときを取りたいんだよね?
正規表現にはnullというキーワードはないし文字列を文字列として評価する概念の範疇にもないのよ

文字が何もなかったときなら空文字列と一致すればいいから=空文字列で
空文字列の指定は""つまり何も入力しない

反対に文字が何か入っていたときなら.+(1文字以上の文字列)と一致をみればいいよ
これを除外しても!=で不一致をみても空文字と一致のときと結果は同じ

.*を使うと0文字にもマッチしちゃうから空文字列を含めて全部指定したことになる
2021/06/11(金) 20:26:05.34ID:i3mYB6Aw
>>847
ちな[not_title]でタイトルは取れるよ
>>787>>817で取ってるんだけど他の処理部分もあって複雑だと思うからあまりいいサンプルじゃないかもしれない
2021/06/11(金) 20:30:03.07ID:6Wrx9cbx
>>846
あー、開いた先でボタン押してスクリプトだかが動いてさらにボタンが生成されるからHTTP GETじゃダメなのかも
「ソースを表示」で、そのボタンは検索しても見つからない

touchtaskプラグインを少しいじってみたけど、自分の力量じゃ把握するのに時間がかかりそうだ
もう少し頑張ってみます
851841
垢版 |
2021/06/11(金) 21:45:03.71ID:mH1q6GT3
>>848-849
なるほど、そういう仕組みだったんですね。よく分かりました。ありがとうございます。

でも通知の発生をトリガーにすると一致、除外とも動作するのですが
通知の消去をトリガーにすると何か変で
キーワード .+ で、除外でも含むでも任意の通知消去に反応してしまいます。
|で複数除外指定してもやはり動きませんでした。
通知表示トリガーなら通知内の秒数のカウンターが進む度に発動しますが
通知消去トリガーだと表示が更新されても完全に消去しない限り発動しません。
通知消去トリガーは挙動を把握するのが難しいです。
私の環境のせいかもしれません?
852841
垢版 |
2021/06/11(金) 22:06:16.74ID:mH1q6GT3
通知消去トリガーで【除外】を選んだ場合、
正規表現"."だと発動しました。しかし"."を【含む】でも発動しました。
日本語だとかな漢字の何をキーワードにしても除外である限り無反応
【含む】だと正規表現も日本語もうまく動くのですが・・・
2021/06/11(金) 22:58:56.66ID:i3mYB6Aw
>>852
トリガされるされないの前にまず「.」は任意の1文字にマッチする
これだけを素直に受け取るといいよ
んで含む(include)と除外(exclude)てのは一致(=)不一致(!=)と違って文字列中のどこに現れても判定は真になるわけだからね
で実際に食わせてる文字列に照らしてどうだろう?
2021/06/12(土) 05:59:48.96ID:8nEb6c/F
話の流れと全然関係なくて申し訳ないけどoperaは中国の詐欺ローンアプリで荒稼ぎしてる怪しい会社に買われて元の開発陣は離脱してるからもうアンスコして使わない方がいいよ
operaの元開発陣は今はvivaldiってブラウザ作ってるからそっち使ってあげて
2021/06/12(土) 10:03:14.72ID:EgqnWs90
キーボードショートカットを送りたいのですが、いい方法はないでしょうか。
2021/06/12(土) 10:09:33.57ID:MKVRRNYe
>>855
>>831
2021/06/12(土) 12:15:31.32ID:EgqnWs90
>>856
TouchTaskのKeysSuppressのことでしょうか?
これは試しましたが、機能しなかったので、キー送信する物ではないのかなと思ってました。
2021/06/12(土) 16:27:12.87ID:MKVRRNYe
>>857
オプションのkeysとsoft keysを有効にしてユーザー補助でtouchtaskを有効にしても動かない?
トリガで取ることはできても送れないのか
2021/06/12(土) 20:58:41.10ID:ucyK7/Ez
あー、Vivaldi なら IncognitoTabLauncher ってので直接シークレットタブが開けそうだなあ
でも、「インテントを送信」にどう入力したら良いのかわからない・・・
ちなみにQuickShortcutMakerで拾えて、動作することが確認できたのはこれ
アドレスが遅れるかは不明

Application,Activity,Package/Class
Vivaldi,Vivaldi,com.vivaldi.browser/org.chromium.chrome.browser.incognito.IncognitoTabLauncher
2021/06/13(日) 19:11:14.24ID:ItAWcW9e
ググるとchromeの答え書いてあるような?
www.reddit.com/r/macrodroid/comments/mlnvlh/solved_open_chrome_incognito_tab_and_launch_url/?utm_source=amp&utm_medium=&utm_content=post_body

通知表示されるから一発で全タブ閉じられるしこれでいいんじゃ?
2021/06/13(日) 21:36:17.31ID:N8AfBBVv
インテントを送信
ターゲット
Activity
アクション
org.chromium.chrome.browser.incognito.IncognitoTabLauncher
パッケージ
com.opera.browser

が、まずSend Intent Failedになる
No Activity found to handle intent だって。

アクションを
org.chromium.chrome.browser.incognito.OPEN_PRIVATE_TAB
にしても同じエラー

よーわからんちん
2021/06/13(日) 21:56:12.69ID:ItAWcW9e
>>861
いや、chromeの話
com.android.chrome
URI文字列をデータで渡すとインテントエラーになるから別途URLをコピペで貼る流れが解説されてる
2021/06/13(日) 22:13:22.36ID:RD2DNEZw
初心者丸出しの質問で申し訳ないが、
echoAutoのAmazonミュージックアンリミテッドを自動で立ち上がるようにしておかないとする
つまりマクロドロイドを使わないとするなら、やはりAlexaに声かけても音楽流せませんか?
2021/06/13(日) 22:16:34.51ID:N8AfBBVv
>>862
Chromeは普段使いしてるから、マクロで弄くりまくる対象にはしたくないんだよなぁ
まあ、遠回りして文字列とボタンIDで目的は果たせたから、シンプルでスマートなやり方は諦めるわ
ありがとう
2021/06/13(日) 22:54:22.69ID:ItAWcW9e
>>863
それはもうalexaアプリとかamazon musicアプリの使い方の話のような気がする
デフォの音楽サービスに設定してればアプリ指定せずにボイスコマンド通るでしょ
2021/06/14(月) 00:08:22.97ID:MdPXblRS
>>857
比較的イージーなのはhackers keyboardとかのctrlキーがソフトキーにあるのを使うことっぽい
あとはPCいらずのadbでinput keyeventとか
2021/06/15(火) 00:32:43.26ID:iKUxP1oA
キャプチャして切り出した画像と同じ画像の場所を探してそこをクリックするって、FREP呼び出すしかない?
MacroDroid単体か、プラグインとかで出来たりするの?
2021/06/15(火) 04:20:17.97ID:iKUxP1oA
もし[storage_external_free]が5,000MB以下だったらユーザープロンプトを出す
っていうのを書くには、どうしたらいい?
[storage_external_free]で取れるのは文字列"4,500MB"だし、
文字列処理で^((\d+),)?((\d+),)?(\d+)[a-zA-Z]+$ → $2$4$5も変換されない
数値型の変数でなければ"<"で比較もできない

泣きたくなってきた
2021/06/15(火) 06:30:00.07ID:iKUxP1oA
>>868
補足"40,852MB"の現状で以下を試した
(([0-9]+),)?(([0-9]+),)?([0-9]+)MB
$2$4$5
"40null852"

[storage_external_free]に付加される単位って、MB固定?
自動的にGBとかKBとかに変化する?

てか、そもそもやり方間違ってる?
2021/06/15(火) 09:17:19.56ID:DvPxeH3l
>>868
正規表現でもいいけど文字列操作のsubstringでMBでもKBでも2文字削る

その後変数の代入時にキャストすればいいよ
整数型の変数作ってexpressionからString Variable Valueを選ぶ
そしたら文字列型の変数さらに選べてキャスト指定できる
https://i.imgur.com/P3PI5UB.jpg
https://i.imgur.com/rst1i7W.jpg
2021/06/15(火) 10:26:01.00ID:iKUxP1oA
>>870
そうね。
"GB"を”,000,000"に、"MB"を”,000"に、"KB"を”"に置換してから新規でもう一つ整数型の変数作るのね
勉強になるわぁ
2021/06/15(火) 10:28:54.89ID:DvPxeH3l
>>868,869
あ、カンマがあるんか
んじゃ正規表現が楽でいいね
書いてるのだと必ずカンマが2こ期待できるなら
他にもイージーに[0-9,]+でもいいし.+(?=(MB|GB))でも
文字列の全体長取りつつsubstringで2文字少なく取ってreplace_allでカンマを空文字に置換するのでも

単位考慮しなくちゃいけないならどのみち最初に調べる必要ある
それならシェルスクリプトでwc -c < [lv=hogehoge]でファイルネーム渡して取得してもいいんじゃないかな
そしたらカンマも単位も考慮しなくていいからあとはキャストするだけ
2021/06/15(火) 11:51:57.39ID:DvPxeH3l
>>871
そうだね
>>871の文字列の置換操作でKB合わせにしてからコンマを除去
で整数型にキャストする解がベストチョイスな気がする

自分で言っといてアレだがwcコマンドでバイト単位で取得してもmacrodroidの整数型は符号あり32ビットなんで2GBを越えるファイルサイズだと桁が溢れて正しくサイズ比較できないね
KB合わせだど2TBまで数えられるから充分
シェルスクリプトでやるならexpr `wc -c < [lv=hogehoge]` / 1024
2021/06/15(火) 12:00:16.17ID:iKUxP1oA
シェルスクリプトで使えるコマンドとやらは、ライラックスとやらの構文をググってコピペすりゃぁ良いのかな?
ほかの言語にも対応してるのかしら?
2021/06/15(火) 12:23:53.44ID:DvPxeH3l
>>867
autoinputかtouchtaskのscreen captureでできそう
やったことないんだけどクロップして使うとしてプラグインが全ピクセルの色値を完全一致でみるんだとすると使えるケースが限定的なような?

画面の変化が少ないアプリやウェブならテキスト取れる可能性を試すほうがいいし
例えばゲームなんかだとエフェクトやウィンドウの半透明なんかで一致しなそう
2021/06/15(火) 12:39:37.31ID:DvPxeH3l
>>874
Androidはkshなんで標準で使えるかどうかはこの手の素の端末エミュレータで動作チェック
https://play.google.com/store/apps/details?id=jackpal.androidterm

termuxを入れればbashだからlinux標準だし大抵のコマンドは入ってる
https://f-droid.org/packages/com.termux
大抵のスクリプト言語も入れて使えるよ
termux:taskerで値の受渡しするんだけど0.5に上げるとできなくなったから0.4からパージョン上げないようにしてる
https://f-droid.org/packages/com.termux.tasker
2021/06/15(火) 12:45:43.00ID:iKUxP1oA
>>875
TouchTaskのScreen capture、使い方がよくわからないのよ
Compareして一致した部分の座標を返してほしいんだけど、そういう使い方じゃないのかしら?これ
返ってくるのがスクショした画像を保存したパスと、空欄w
2021/06/15(火) 13:01:24.89ID:wZm5RKnQ
こんな感じで
https://i.imgur.com/zDQlMoA.png

Permissionがdeniedされるんだけどなんでだろ
JaneStyle 2.2.3/Xiaomi/M2007J22G/11
2021/06/15(火) 13:21:09.57ID:DvPxeH3l
>>877
Pixel colorにtasker記法の%hogeで座標渡すと色値返してくれるよ
あらかじめmacrodroid変数として例えばpos_xとpos_yを作っておいてPixel colorの欄に%pos_x %pos_yとスペース区切りで指定
画像パスもいれといてあげればその画像の同一座標との比較が取れるんじゃないかと
画像は試してないからやってみてよ

タップ位置をトリガで取ってその座標を渡して色値を取るってなら試して取れたよ
http://www.macrodroidforum.com/index.php?threads/touchtask-examples.71/post-369
2021/06/15(火) 13:36:55.73ID:DvPxeH3l
>>878
MIUI12アップデートでパージョン関係グダグダになってるよ
2021/06/15(火) 13:43:21.17ID:xG9/YH8Y
>>879
よく見つけてくるわね
スゴイ!
頑張ってみるわ
2021/06/15(火) 14:02:48.10ID:wZm5RKnQ
>>880
直接フォルダ指定したらいけた
https://i.imgur.com/n0C5vC8.png
883名無しさん@お腹いっぱい。
垢版 |
2021/06/15(火) 17:59:57.41ID:0Vfn8aW9
OPPO Reno Aでプライムビデオ起動時にメディア音量80%にしたいのですが、なぜか動作しません。
ログを見ても起動は検知しており、マクロも動いた扱いに見えます。
アクションも試した範囲では音量変更されるのですが、マクロとして動かしたときに音量変更されません。
ColorOSではこの動作すら出来ないでしょうか?
2021/06/15(火) 18:41:49.23ID:DvPxeH3l
>>883
アプリが再生開始時に自前で保持した値にリセットしてるとか?
メディアの再生開始をトリガにしてみたら解決するんじゃないかな
2021/06/15(火) 18:52:53.62ID:2bXB63ah
>>883
Bluetoothメディア音量だと上手くいかないときある
2021/06/15(火) 19:34:49.69ID:9KV1CjP3
>>883
1回目だけは動いて2回目から動かないとかはない?
Reno Aは持ってるけどアプリの起動認識がおかしくてAutomateltからMacroDroidに完全移行できなかった
今はReno3 A使ってるのでアプリの起動認識はある程度出来てるけどまだその他色々動かない部分は多い
2021/06/15(火) 22:06:12.65ID:+mx6/VAK
883です。
その後色々試したのですが、トリガーをアプリ起動では無く、
画面横回転とかにしても同様に音量変更されませんでした。
相変わらずログではマクロが呼ばれて実行されたかのように記録され、
アクションも試験動作であれば問題なく音量変更してくれます。

>884
メディアの再生でも変わりませんでした。

>885
本体スピーカーしか繋がってません…。

>886
トリガーの問題では無さそうでした。
2021/06/15(火) 22:09:03.05ID:xG9/YH8Y
Wait 1秒入れてみたり
2021/06/15(火) 22:35:47.94ID:+mx6/VAK
>>888
念の為2秒入れてみたけど駄目でした。

動作確認でメッセージ出すようにしてみたのですが、OK押しても繰り返しメッセージが出ます。ループするものでしたっけ??
2021/06/15(火) 23:25:03.82ID:DvPxeH3l
>>887
まず書いたマクロ貼ったほうが早い気がする
自前のボリューム管理書いてテストしてみたけどメディア再生後にセットで問題ないような?
機種依存なんてそうそうないと思うんだけどまぁそれは何とも言えないね
https://i.imgur.com/3ojuMWs.png
https://i.imgur.com/AOP1qMI.png
2021/06/15(火) 23:26:49.18ID:9KV1CjP3
>>887
画面横回転はMacroDroidが認識しないんじゃない?
自分のも音量変更はうまく動作しなかったから別の方法でアプローチしてるよ
初めに音量設定アプリでBluetooth用に作ったプロファイルをショートカットにしておいてBluetooth接続したらそれを呼び出して音量変更という方法ならうまくいってる
2021/06/16(水) 00:49:52.64ID:N+fjj59T
>>889
何度も呼ばれてるんじゃ?
普通ならないと思うから処理があやしすぎる
あれこれ想像させても答え出ないと思うからフロー貼ったほうがいいって

>>891
画面の向きは取れるよ
>>600あたりでもやってるよ
2021/06/16(水) 00:53:09.27ID:wRsSsYRR
こんな感じで酌みました。

https://i.imgur.com/zbzowVv.jpg
https://i.imgur.com/zg4LHFj.jpg
2021/06/16(水) 00:54:27.65ID:wRsSsYRR
>>893
画面ローテだと一回しか呼ばれないけど、アプリ起動のトリガーだとループする感じ。
2021/06/16(水) 01:16:06.11ID:N+fjj59T
>>894
ループっていってるログはあるかい?
キー待ち中に再度トリガ発動条件をみたしたとか
別のマクロにも同一条件のトリガがあって混同したとか
自分だとどうしても客観的にみられないときあるからね

ボリュームが変わらない問題の方は他のアブリかシステムがアブリの起動から実際に音が出るまでの間に上書きしてるんだと思うけどね
別のマクロででも起動前から動画が流れて音が出た後あたりまで200ミリ秒間隔くらいでユーザーログにメディアのボリューム[vol_music]を書き出せばはっきりするよ
ずっとボリュームが変わらなければ少なくとも今のやり方だとマクロは動くけど変更できないでFAなんだし
2021/06/16(水) 01:40:43.98ID:N+fjj59T
トリガにインテント受信入れて
中身を「android.media.VOLUME_CHANGED_ACTION」にして
アクションでボップアップかなんかで[vol_music]を表示してもいいよ
実際にメディアのボリュームが変わってなければポップアップ出ない
ポップアップが出ても値が動けば上書きされてる
2021/06/16(水) 08:55:34.25ID:7EqULQyW
>>892
画面の向きは取れると言う件ですがReno AでもReno3 Aでもまったく反応しないのでこの機種はそういうもんだと思ってました
>>893さんの話だと横回転は取れるみたいなので衝撃ですね
他の機種で動くのは当たり前の事もColorOSだとうまく動かない所が沢山あってよくわからないです。
2021/06/16(水) 10:41:05.51ID:N+fjj59T
>>897
スクリーンロックを解除して横画面対応アプリをフォアにして端末の向き変えても追従しないってこと?
2021/06/16(水) 10:47:01.21ID:N+fjj59T
スクリーンロックて言い方良くないな
画面回転を抑止する状態を解除して自動回転状態にしても回らんの?
2021/06/16(水) 11:59:21.81ID:8Al2b46I
>>895
有難うございます。
ループの時はこんな感じです。
音量については後ほど試してみます。
https://i.imgur.com/pqQmB0r.jpg
https://i.imgur.com/6Hl1afX.jpg
2021/06/16(水) 12:45:10.54ID:N+fjj59T
>>900
最初2回の実行は完走してないね
自分で止めてるんじゃなきゃキー待ち中に再実行分が動いてあとに積まれてるんじゃ?

何でアプリ起動が複数呼ばれてるか説明がつかない
他のマクロで起動してるとか?
このマクロだけのログ表示じゃなく全体のログを詳細表示すれば他で何か起きてるか何も起きてないか分かるよ

あるいは、すごく重くてフォアのアプリがブロッキングしていて何度も起動受信したことになってしまってるとか
バッテリー節約がらみでmacrodroidにタスクが回ってきにくいとかないのかな?
2021/06/16(水) 12:54:04.41ID:EGQVsPmr
>>899
画面回転を抑止する状態を解除して というのが何を指しているのかわかりませんが一般的なアプリはちゃんと横画面にしたら横に表示されます。
以前にMacroDroidの機能テスト用に作ったマクロではまったく無反応でした。
もちろんトリガーを手動で実行すればマクロはちゃんと動きますし横回転のトリガーを表裏に変更してもちゃんと動きます。
https://i.imgur.com/AYgCjAc.jpg
2021/06/16(水) 13:29:00.52ID:31EST43k
素人質問なんだけど、みんなはさ、エラーが起きて中断するときの処理、どう記述してる?
長ーい処理の途中各所で想定外のエラーが起きた時、
その時点の変数をLogにすべて書き出して、途中で行った設定類を初期状態に戻してからマクロのアクションをキャンセルさせたい

エラーが起きそうなところにいちいち全部同じ処理を書き込むの面倒
全部グローバル変数にしといて、別マクロを呼び出してキャンセル作業をさせるのも面倒

GOTO〜EXIT みたいに末尾に一括で記述して、エラーが起きたらそこにジャンプさせたい
アイデアをください
2021/06/16(水) 14:46:59.71ID:N+fjj59T
>>902
トリガが呼ばれないっとこと?
試しに画面の向きを検知する制約を入れてみるとmacrodroidがどの向きを検出できてるかリアルタイムで分かるよ
https://i.imgur.com/URQdMWs.png

呼ばれてて回転しないならデバイスの向き(ジャイロ検出状態)と実際にすべてのアプリが回転するかは別の話なんでね
貼ってくれたマクロのボップアップは標準のホーム画面やmacrodroidのウインドウの前面だと回転しないだろうなと
対応アプリはOSの自動回転の有効/無効設定に従うけどホームを含む非対応アプリは>>600に入れといたようにアクションで画面回転を強制しないと回転しないよ
2021/06/16(水) 15:36:21.74ID:EGQVsPmr
>>904
ありがとうございます。
画面回転に非対応なアプリがフォアグラウンドだとトリガーすら取れなかったのですね
You Tube上で試してみたらトリガー反応してテストマクロが動きました!
制約がわかってなくてColorOSだと反応しないと勝手に決めつけていたのは反省です。
2021/06/16(水) 16:05:23.67ID:N+fjj59T
>>905
んだんだ
実際にポートレート/ランドスケープモードになってるかでトリガが発動するんだよ
だから自動回転を無効に設定していたり回転しないアブリの前面だと動かない
それを回避するために回転を強制するアクションを先に動かして画面の状態を一時的に常にグルグルにしちゃうってことね
俺も作ってて自動回転設定を有効に書換えても期待通りに動かなくて強制アクションみつけたんだよ
2021/06/16(水) 17:40:38.31ID:N+fjj59T
>>903
エラーてマクロのロジックミスよね?
例外上げる仕組みはないしmacrodroidのデバッグ環境はかなり悪い 笑
基本?に忠実に手堅く書くのと地道なプリントデバッグしかないよねえ
長文連投いつもすまないが以下ご参考に

・入ってこなくても影響ないと分かってるもの以外変数は使用前に初期化する
・取得した値は使う前にチェックする
・2値以外の分岐はifとelse ifで積極的に取りたいものをすべて書いてelseは想定抜けのための捨て分岐にする
・エラーが返ってくる外部呼び出しのものにはちゃんとエラー処理を書く
・複数トリガをうまく使って縦に長くならないようにがんばる
・一本道でもif〜end ifを活用して折り畳めるようにする
・処理ブロック単位で入ってきそうな仮のデータを変数に入れて一行ずつステップ実行っぽいテストをする
・今何やってるのかポップアップか通知に残してもいいような体裁で作る
・最終的に消したい不格好なデバッグ表示はフラグを参照して一発で消せるようにしとく
・無限ループ対策に物理キーでmacrodroidが止まるようにしておく
・キーが効かなくならないように枯れてないループには速度を犠牲にしてでもウエイトを200ミリ秒くらいは挟んでおく
・すぐ分かんないバグが出たときは該当箇所にブレイクポイント代わりにマクロキャンセルや確認ダイヤログを挟んで処理を止めて値の中身をみる

変数の中身が変化したら呼ばれるトリガを使ってトリガチェックするif文で囲んで自分的なエラー終了処理をまとめることはできると思うよ
すっきりするとは思うけどエラー検出は自分でやるわけだから想定外に対応できるかは疑問かな
2021/06/16(水) 18:13:26.51ID:5O1A65ta
一ヶ月ぐらい前に作ったマクロがだんだn不正確な動きをするようになりました。
保存しておいたマクロをSDカードからインポートしても結果は同じ。sense2とsense3liteのどちらの端末でも同じ結果。
マクロが働かなくなるってあるんでしょうか。
2021/06/16(水) 18:32:36.37ID:N+fjj59T
>>908
あるよ
OSやmacrodroidのパーミッションアップによる仕様変更とか
期待してるデータの仕様が変わったとか
あと適当にウエイト入れてタイミング取ってるだけだったりすると処理負荷や省電力との兼ね合いでわりと動かなくなりがち
2021/06/16(水) 18:43:13.10ID:N+fjj59T
うーん、バージョンアップて書いたつもり
2021/06/16(水) 20:05:03.52ID:1NyI3c86
>>907
変数に想定外の値が入ったら全部IfのElseで回収するようにしてて、
そうなったら一旦マクロを止めてユーザー(俺)に通知するようにして、
後から手動で問題個所のデバッグをしてるんだけど、
Macrodoroidから別アプリの裏設定を何か所も弄ってるもんだから、ユーザーが起動するときには裏設定を元に戻しておきたい
マクロ処理の途中で止めちゃってるからどこを弄ってる途中なのかもわかりずらいし何より戻すのが面倒くさい
Elseの回収ポイントもたくさんあるから、各所に同じ手仕舞い処理を重複させるのすっごく大変
エラー処理をIfで囲んどけば丸っとコピーできるのはありがたいけど、エラー処理自体を修正する度に全箇所コピーと削除するのも大変

VBAしか知らないからよくわかってないんだけど、
Elseに入ったら Goto エラー処理行 して、末尾とかに記述したエラー処理行 にジャンプして手仕舞い処理してExit Subしちゃいたいんだ
どの回収ポイントから飛んできてもエラー処理でやることは共通にできるから、それができたらシンプルにできるんだよねぇ・・・

素直に別マクロを呼び出すべきなのかなあ・・・
2021/06/16(水) 20:23:04.92ID:1NyI3c86
ダイアログを消す
って、どうやってやるんだろ

具体的には、通信が不可能なら「電波を待っています」ってダイアログを表示して次のアクションを待機
ユーザーの操作がなければそのまま表示出しっぱなし
通信が可能になったらダイアログを勝手に消して続きのアクションを続行
2021/06/16(水) 20:53:40.64ID:N+fjj59T
>>911
例外終了処理のブロックはデバッグに必要な情報を出すことと
それと他のアプリの設定をあらかじめ分かってる全部チャラの値に戻すことだよね?

>>907の最後に書いといたんだけど
特定の変数が更新されたら発動するトリガがあるのよ
例外のelseでその変数にロギングしたい値を文字列にまとめて突っ込んでキャンセルで終了
トリガ発動するから当該トリガ発動をチェックする式を入れたifブロックで受けて終了処理してマクロをキャンセルでいいと思うよ
この例外終了ルーチンは頭に置いてもいいし他のブロックもすべてトリガチェックするif文で囲むお約束で書いてればスルーされるから最後でもどこに置いてもいい
もちろん別のマクロに分けてもいいと思うよ

>>912
ダイヤログは無理だけど通知ならできるよ
いったん終って抜けて通知タップトリガor通信再開でマクロ再開すればいい
2021/06/16(水) 21:10:32.58ID:5O1A65ta
>>909
手動アップデートにしているのでアプリやOSのアップデートは全くされていないんです。
どうも挙動を見ているとタップをする場所がずれていたり、一度だけタップのはずが二回されていたりしているんですよね。
2021/06/16(水) 21:36:35.81ID:1NyI3c86
>>913
アクションの中の「トリガーまで待機」と
Ifの条件の「発動したトリガー」(ウィジェットボタンのみ)
しかみつからない・・・
2021/06/16(水) 22:04:46.77ID:N+fjj59T
>>915
こんな感じ
https://i.imgur.com/wN1xl6x.png
https://i.imgur.com/B62S3cm.png
https://i.imgur.com/LVgXnaQ.png

「macrodroid変数の値変更」っていうんだね 笑
みんなには悪いんだけどコマンドが日本語でなんて訳なのか用語を知らないんだよ
言語変えるとコマンド選択ウィンドウの位置も変わっちゃうからサクッとサンプル用意するにもあれ?ってなる
2021/06/16(水) 22:58:33.86ID:1NyI3c86
>>916
はあーーーぁ???
なんだーっ!そのやりかたぁっ!!

え゛ぇーーーーーっ

すげー
よく気付いたなあーー
2021/06/16(水) 23:30:57.44ID:N+fjj59T
>>917
これには発展応用があって関数呼び出しというかサブルーチンみたいな雰囲気に書けるのよ
値の受け渡しはグローバル変数なんだけど
>>915で言ってるトリガまで待機と組み合わせてね
その場合は同一マクロでもできるけどマクロ分けたほうが良くて相互に呼ばないで常に共通ライブラリファイル内のルーチンを呼んで戻ってくるみたいな管理がいい
2021/06/17(木) 00:08:29.45ID:mavIfUqv
>>916
これはさ、このマクロ実行中にトリガーがFireして、同じマクロが後から並列で二つ起動してる状態になるって理解で良いのかな?
で、正規な本流のアクションと、エラー処理のアクションは、別な If Trigger Fired で囲っておけば良いと。
ローカル変数は共有されるわけか?
ん?、ちがうか
変数はどういう状態になるんだろ

まいっか、いろいろ試してみよう
いや、すげーわ
2021/06/17(木) 00:19:11.73ID:mavIfUqv
>>918
あ、グローバル変数使うのね
理解が追い付かねぇわw
2021/06/17(木) 01:08:12.93ID:kBFz7FDw
>>901
これしかマクロ無いので、これで全体のログなのです…。

音量のログ取りましたが、マクロは動くけど音量変更は出来ないって状態でしょうか?

https://i.imgur.com/vO5zYpW.jpg
2021/06/17(木) 01:11:02.62ID:LYTqgJgj
>>919,920
3つifブロック(便宜上A,B,Cとする)があるでしょ
通信のトリガで起動するとする
Aに入ってエラーがないとBをスルーしてCに入って終わる
Aに入ってエラーがあるとマクロはキャンセル終了
ただし変数を書き換えてるから改めてマクロが別のトリガで走ってAをスルーしてBの尻でキャンセル終了

エラーをどこに置いてもいいと説明するために真ん中に挟んだだけで、フローの処理順序に依存関係があるのはA→Cだけね
Bはどこにあっても構わない
後述する同一マクロ重複呼び出しのルールでB用のトリガ呼び出しがA→Cのキャンセルの後になるからシーケンシャルな処理順序が保証される

実はmacrodroidは常にシーケンシャル実行だから並列処理の同期管理を気にする必要ないのよ
複数のマクロのトリガが並列で呼ばれた時でも一方がウエイトに達するともう一つのマクロの処理が進んでやはりウエイトまで進む
そしたら元のマクロがやはりウエイトまで進むの繰り返し
3つ以上は未検証だけど同様にローテだと思うな
このウエイトまで進むの例外というか拡張が「トリガまで待機」でこれだけは待ち続けていることが保証されてる
明示的な処理中断で不定時間な強ウエイトって言いかえられると思う

同じマクロを重複呼び出しした場合は先行する実行がウエイトに達したときに処理がそこで中止される
そしたら改めて重複分が後追いで実行開始される
まぁ普通は重複トリガにならないように気をつけて書くんで滅多にないと思うけど
これを利用して書いてるのもあるよ

受け渡しの変数はグローバルでもローカルでも良くて同一マクロ内で完結するならローカルでいいと思うよ
後で別ファイルに分けるにしてもその時変えればいいしね
2021/06/17(木) 01:25:49.61ID:mavIfUqv
>>922
ん??
ローカル変数はリアルタイムに共有されるのね

理解が一気に進んだ気がする
ちょーわかりやすくありがとう
これで夢に出てこなくて済みそうだよw
2021/06/17(木) 01:33:15.63ID:LYTqgJgj
>>921
ログを記録の0て[vol_music]の値でいいのかな?
したらゼロってことなんでムービーの音鳴らないんだけどな
実際鳴ってないからサイレントに強制するモードの絡みとかどうなんだろ?
ナイトモード的なのでどんな音も鳴らないとか?

提案としては選択肢が3つあって
1. このまま原因追求して究明する
2. このマクロを試してみて動くようなら好みに改造する(少なくともプライムアブリがフォアにいることを条件に加えて起動を限定してほしい)
https://www.mediafire.com/file/n4fonc7be8j9xdz/1tm.setConstantMediaVolume.macro/file
3. ボリュームに値を入れるのを諦めて別の方法を試す

さっと思いつくのは、こんなの
現在のボリュームを取って理想のボリュームの30との差を取ってボリュームボタンを/10回押す処理にする
例えば今53なら(53-30)/10で2回ダウンを押す
今0なら(0-30)/10で-3だから3回アップボタンを押す
ボリューム1回押せば10とかだと思うけどそこは調べてみないとかな
2021/06/17(木) 01:42:22.02ID:LYTqgJgj
>>923
マクロの実行はインスタンス的なイメージで捉えなくて平気
ローカルでもグローバルでも常に一意に読み書きできるよ

逆に言うと処理順序を常に意識してないと他にアクセス可能なマクロがあった場合値が書き換わる可能性があるからグローバル変数は参照しかしない多数のマクロと書いていい唯一のマクロみたいに自分でキメを作らないとハマると思うな
2021/06/17(木) 13:11:50.48ID:LYTqgJgj
>>921
んー、ボリュームいじる前にシステム設定でサイレントモード時にメディアもサイレントにする設定値を1→0にすれば解決じゃないかな?
https://i.imgur.com/WcipihO.jpg

オレの機種だと(たぶんどの機種でも)サイレントモードをオンにする以外にもメインボリュームをゼロにするとサイレントモードがオンになる
んでこの設定値が1になってるとメディア鳴らないんだと思う(オンにしたことないけど)
これmacrodroidで書き換えてもいいけど設定アブリで設定どうなってるか確認してアタリだったらメディアの音出るように設定してほしいな

ループっていってる何度も呼ばれる現象は実際ボリュームが何度も(こちらのテストでは6回)変更されてる
インテントをキャッチすればそれがわかるから取りこぼし対策でそうなってるんじゃないかな
2021/06/17(木) 13:27:13.73ID:LYTqgJgj
あ、いや違うな
アブリ起動が複数回呼ばれてるんだっけか
実際アブリがストリームに応じてサブシステム変更するために起動し直すとか?

まぁでもそこはあんまりこだわらないでアブリ起動が複数回呼ばれることが分かったんだから他のイベントをトリガにして回避すればいいだけのことだと思うな
プライムビデオがフォアにいるときを制約条件にしたメディア再生開始トリガでそっちでも1回しか呼ばれないと思うよ
2021/06/17(木) 20:53:46.04ID:kBFz7FDw
>>926
サイレント解除、メディアボリューム少し上げた状態でも駄目でした。
アクションのテストでは問題なく音量セット出来る為、
この機種ではマクロでの音量セットは出来ないものだと諦めました。

そんな訳で、上でご提案頂いたボリュームボタン操作の案にて実装しました。
(音量100%になるまでボリュームアップをループさせ、その後ボリュームダウン2回実行)
相変わらず2回呼ばれるものの、意図した結果にはなっているので、
取りあえずこれで使ってみたいと思います。
ありがとうございました。
2021/06/17(木) 21:33:07.18ID:LYTqgJgj
>>928
で結局mute_music_at_silentのシステム変数は0だったの?1だったの?
あとテストで音量セットできてるってその時もログに設定値書くと30が記録されるの?
テストでも本番でも[vol_music]をディスプレイ/ロギングしながら実際に音鳴らして30%になってる/なってないことで確認してるんだよね?

別の手でできたから結果オーライなんだろうが開示される情報が全部中途半端だからモヤモヤが止まらないのよ
2021/06/17(木) 22:43:11.42ID:kBFz7FDw
>>929
システム変数の設定箇所が判らず値は見てませんが、サイレント解除の状態で動かなかったので無関係と判断しました。
アクションのテストは実行後のボリュームスライダの位置を見て判断、
その他はvol_musicを記録しての判断です。
アクションのテストってログ出力をセットに出来るんでしょうか?
2021/06/17(木) 23:31:46.42ID:3pCdWiu7
>>929
自分のでも>>930さんと同じ挙動ですよ
トリガーからマクロを実行すると音量変更が効きません。
バイブのオン・オフなどもうまくいかない事が多い(サイレントのオン・オフは可能)のでColorOSでの音量変更は難しいと思っています。
それとColorOSはメニューの作り込みもかなりカスタマイズされていてAndroidでは設定できる項目がなかったり逆にColorOSだけのオリジナルの項目があったりしていて、サイレントモード時にメディアもサイレントにする設定はありません。
あとColorOSではメディアの音量はサイレントやマナーモードにまったく連動せず独立しており、サイレントに設定してても音楽を再生させると音がなります。
2021/06/17(木) 23:38:04.42ID:3pCdWiu7
ちなみにColorOS6(Android9ベース)とそれ以後の新しいOSでもメニューの作りとかだいぶ違っていて(カスタマイズ項目が少なくなっていて)MacroDroidで操作できる部分は増えて来ています。
自分の場合は面倒なので別途音量設定アプリを使用して通常・マナー・各Bluetooth機器用のセットメニュー等をショートカットにしてしまい、マクロからそれらを呼び出して切り替えちゃってます。
2021/06/17(木) 23:48:03.56ID:LYTqgJgj
>>930
直前直後のログ出してる行をテスト実行すれば記録されるでしょ?

テストと本番で実行結果が違う理由が分からないのが気持ち悪いね
動かないなら動かないで結果が一致するなら分かる
結果が違うなら状態が違うはずだからね

キー操作以外のボリュームゲージ表示は反映が遅延することがあるし
macrodroidで値を書き換えてもゲージのポップアップ表示はされないからちょっとどうやって表示見て判断してるかイメージつかないな

>>931
サイレントと別途メディア音を出す出さない制御は別にあって>>926がその設定をいじくる方法なのよ
中華スマホのなんちゃらOSてUI変えてルック&フィールを変えてるだけのことを大仰にのたまわってるだけって認識なんだけど甘いかな?
手元のMIUIガーもUniherzもUmidigiも挙動変わらないんでね
奥さんのreno a借りてテストしてみるよ
2021/06/17(木) 23:56:18.54ID:3pCdWiu7
>>933
すみません。画像まで添付していただいてますが自分だとそれが何の画像かすらわからない素人なんです…
2021/06/18(金) 02:29:02.71ID:I77SqFlz
>>928,931
結論としてはね、oppo reno aでmacrodroidからメディアボリュームの変更はできた

でも確かに二人が言ってたようにデフォの状態だとmacrodroidがフォアのときしかできない
だからいったんmacrodroidを起動してボリュームを変更してからターゲットのアブリにフォアを切り替えてメディア再生開始してればデフォでもボリューム変更可能だね
これは>>932のアプローチと合致するんじゃないかな?
あらかじめ変更しとくってことで

んで他のアブリがフォアでも変更可能にする方法は開発者オプションで「許可の監視の無効化」をオンにすること
んでもちと問題点があってmacrodroidが物理ボリュームキーを奪っても入力をなかなか取ってくれない
macrodroidがフォアのときはキーを取りこぼすなんてことはないから省電力等を完全に排除する設定にしてもバックグラウンドになかなかタスクが回ってこないのかもね
まぁ一発で特定の値を入れるのは問題ないんで結論はmacrodroidでメディアボリュームの変更はできるでいいと思う
https://i.imgur.com/Fz32ECQ.png
https://i.imgur.com/ZKjT2df.png
https://i.imgur.com/LDZ98yo.png
https://i.imgur.com/ad49uNf.png
https://i.imgur.com/26xDokk.png
https://i.imgur.com/ggVsJB7.png
2021/06/18(金) 03:13:39.40ID:VgikN6Oe
全部謎が解けたからスッキリ眠れる 笑
そんなわけねーとか思ってたのは俺の反省点
あとmute_music_at_silentのシステム変数はMiUIの独自拡張だった
これもmiui_やcom.xaomiで始まる変数じゃないからって確認しないで聞いてた
これも俺が悪い
すまんことしたねゴメンなさい

>>883の段階からテストでは動くのに本番実行だと動かないってそりゃそう思っちゃうよなぁと理解できた
実際はデフォの状態でmacrodroidがフォアだとボリューム変更できる
バッグに回ると変更できないってことだったけど確かにcolorOSガーて言いたくなるわな
開発者オプションにはOS固有のオプションがあるって以外にも標準の設定値と違う設定値にして出荷されてたりするからこの手のトラブルのときは見てみるといいかもね
2021/06/18(金) 08:09:01.59ID:uEVRnhKQ
質問です!教えていただけると嬉しいです!
目的:Slackのincoming webhookにテキストを送りたい。
「restask」や「http shortcuts」などでPOSTを試してるのですが、書式が間違っているのか 400 invalid_payloadとエラーが返ってきます。
以下のcurlでは動作確認しました。
curl -X POST -H "Content-Type: application/json" -d '{"text":"test"}' https://hooks.slack.com/services/*****
2021/06/18(金) 08:56:52.69ID:r2Oo9qug
>>935
天才ですか?!
遅くまで検証していただきありがとうございます。
開発者オプションの許可の監視の無効化をオンにしたらマクロ動きました!
もしかしたら今まで諦めてた他の動作も可能になるかも? なので少しずつ他の動作も試していきます
2021/06/18(金) 09:18:42.93ID:CW95rcLL
この勢いで、ColorOSで画面の明るさを切り替えた時の検証もやってみない?
照度を監視しての明るさ切替をやってて動くは動くんだけど、文字入力中に動くと文字入力が強制的に解除されてしまうのよね。
例えば画像のタイミングで明るさ切替が発動すると、「たとえば」で入力が確定されて入力解除となる。


https://i.imgur.com/cIUUxKx.png
2021/06/18(金) 12:12:10.30ID:VgikN6Oe
>>939
あー、それはしゃーないんじゃないかな
IME入力中に他のアブリに切り替えたら(タスクボタン押しただけでも)確定するでしょ?
センサーのデータ取得にフォアグラウンドサービス使ってると思うんで
フォアグラウンドサービス使ってると(バックグラウンドでも?)一瞬そっちに取られちゃうんじゃないかと
2021/06/18(金) 21:12:00.24ID:VgikN6Oe
>>937
400はjsonが渡ってないってことだよ
restaskやhttp shotcutの要求するパラメータ書式にあわせてPOSTしないと
curlコマンドとその引数をまるまるコピペしてもそりゃ動かないよ
2021/06/18(金) 21:16:13.63ID:VgikN6Oe
>>937
ちゃうんか
curlで別途やると動くのか
ならturmuxからcurlで送ればそれでいいんじゃない?
restaskやhttpshortcutからどう送ってるのか分からないんだけど何を答えたらいい?
2021/06/19(土) 00:02:50.68ID:hNFC1oGs
>>940
そうなのかー。入力確定される度にイラッとしてたw

スマホのデフォルトの明るさ自動調整だと明る過ぎるからマクロ使ったんだけど、何かいい方法無いかなぁ。
944937
垢版 |
2021/06/19(土) 00:53:59.60ID:PFEnuPMl
ありがとうございます!
>>941
なるほど!400はjsonが渡っていないのですね。
RESTaskの書式などのドキュメントが見つけられず、
HeaderにContent-Type: application/json
Bodyやparameterに色々と入れて試しているのですが、
どうにも書式が間違っているようで中々動作してくれず・・・。

>>942
ごめんなさい!説明不足でした。cURLが動作したのはmacのターミナルです。
turmuxも同様のコマンドで試したのですが、エラーメッセージなども表示されず成功しませんでした。
2021/06/19(土) 00:56:12.83ID:2u9+UFTz
>>943
セキュア変数見てみたけどIME使用中かどうか取得できる値はなさそう
IMEのキーボードエリアの必ず色が変わるとこの色を取ってIME使用中を判断するとかかな?
946937
垢版 |
2021/06/19(土) 01:18:30.63ID:PFEnuPMl
重ねてごめんなさい!!
別の端末で試したらRESTask、Http Request Shortcutsどちらも動作しました。
動かなかった端末はAQUOS ZERO2 Android11です。

書式は非常に単純だったのですが、検索しても見つからなかったので一応まとめておきます。
1.Request : Type POST
2.Host :Slack incoming webhook URL
3.Header:空欄 もしくは Contents-type : application/json
4.Enable custom body:
{"text":"ここに文章やMDの変数など"}
2021/06/19(土) 01:21:34.75ID:2u9+UFTz
>>944
curlに-vいれて観察してみては?
あと-Lだったかな?リダイレクトを追うオプション
何も出ないだと相手が反応してないってことになるけどrestaskで400返ってきてるわけだし
あとはurlが違うかプロトコルが違うか名前解決できてないかくらいしか

設定っていってもヘッダを正しい箇所に入力してボディにjson書いてメソッドをPOSTにするだけだからね
httpshortcutだとcurlコマンド食わせてコンバートしてくれるんだからなお間違いようがないと思うのよ
https://api.slack.com/messaging/webhooks#incoming_webhooks_programmatic
の手順でやってるんで間違いない?
2021/06/19(土) 01:38:08.84ID:2u9+UFTz
>>946
あ、だよね 笑
動かなかった端末のdns設定とかネットワーク環境差異を疑ってみるといいかもしれない

ちな前にmacrodroidでjsonこさえてrestaskどころかhttpshortcutにtasker形式の%argで渡して文字列渡せなかったんで試してもらえると嬉しいかも
termuxなら%argで渡して$1なり$@で受け取ればいいと思うんで
2021/06/19(土) 02:28:38.51ID:2u9+UFTz
>>948
自己解決
http shortcutはdeeplink渡しでintent返し
https://github.com/Waboodoo/HTTP-Shortcuts/issues/117
2021/06/19(土) 08:12:17.02ID:pgPhz+Ce
>>936
930です。
フォアかバックかの違いなんですね。
道理でテストの時は動作する訳だ…。
検証までして頂いて、ありがとうございましたm(_ _)m
2021/06/19(土) 22:04:11.09ID:2u9+UFTz
>>950
あと追いチェックしたんだけど当該開発者オプション変えも実際の音量変わんなかった
混乱?ぬか喜び?させてすまんね

というわけでアプローチとしてはやはりこんなとこ
1. 希望のアプリを起動する前にmacrodroidを起動してメディアボリュームを変えておく
2. 希望のアプリ起動後の場合にも対応するにはカレントのフォアアプリのパッケージ名を取っておいて一度macrodroidをフォアに持ってきてボリューム変えてから元のアプリを起動して戻る
3. ターゲットのボリューム値と現在値の差を取って10で除した回数ボリュームボタンをmacrodroidで押してやる
2021/06/19(土) 23:26:46.22ID:avkrvgL5
>>951
1と2は画面切り替えが鬱陶しいし3だとボリューム変更がメディアに設定されてたら通話音量とか他のは変更できないのでは?
あと3の場合は初心者向けだと10回ループで下げて3回ループで上げるとかの方がプログラム的にカッコ悪いけど簡単ですね
2021/06/20(日) 01:16:56.85ID:YWpctb+/
>>952
やり方は好きに工夫したらいいんじゃないかな?
1.2.だとOSのキーコントロール対象のデフォ設定がメディアであろうとリンガーであろうとmacrodroidでそれぞれ変更できるからいいとして
3.でデフォがリンガーに設定されててもメディアプレーヤーがフォアなら勝手にメディアに切り替わるから特に問題ないと思う
逆もしかりで着呼中や通話中にデフォがメディアの設定でもキー操作可能でしょう

除算はたぶん誤差が出るんであらかじめ分かってる10段階の値を変数にデータ持ちして現在値→ターゲットのステップ数を引いてくるとかそういうのも考えられるね
954名無しさん@お腹いっぱい。
垢版 |
2021/06/20(日) 13:01:05.07ID:poyF9Z0X
>>807
>>806です
ありがとうございます
2021/06/20(日) 14:36:37.24ID:YWpctb+/
次スレ立てといたよ
【自動化】MacroDroid Part3【マクロ】
https://egg.5ch.net/test/read.cgi/android/1624166960/
2021/06/20(日) 19:11:00.82ID:9KDWLFzZ
>>955
2021/06/21(月) 00:12:38.02ID:Nsa+V7k5
>>952,950
データ持ちってもこんなとこでよさそう
https://i.imgur.com/omw2abJ.png
https://i.imgur.com/vjprpzp.png
https://www.mediafire.com/file/grlq27xphk4pqoe/1tm.setMediaVolumebyApp.macro/file
2021/06/22(火) 16:10:36.26ID:uGmQ+Ua+
やっぱり配列欲しいな
標準機能でやるには無理にmacridroid内でやるより変数の中身をシェルにに送ってkshで操作した結果を書き戻すほうが楽かな?
あとはautotoolsでやるくらい?それならtermuxで扱いやすい言語でスクリプト書くほうがいいか
2021/06/23(水) 10:55:18.27ID:bxVsGCOd
今まで正常に動いていたマクロが作り直してもうまく動かなくなった件、動作に音をつけて試したところ3回ジェスチャーするはずが6回動作していました。どうやらマクロが二重に作動しているみたい。
原因としてはアプリを起動をトリガーとしているのですが、そこでアプリがうまく立ち上がらずに2回起動し直しているのではないかと見ています。
そこでアプリ起動以外のトリガーを試してみたいのですが、それに置き換われるトリガーってありますかね?
2021/06/23(水) 12:02:51.53ID:ZwrB1GOV
>>957
ありがとうございます。
DL出来たので、時間ある時に試してみたいと思いますm(_ _)m
2021/06/23(水) 12:30:44.83ID:gm+p/J/8
>>959
自分の場合アプリ終了時の動作を入れるとうまく動かないけどアプリの起動だけをトリガーにしてれば何とかなる
1回目のトリガーで変数設定して以後一定時間トリガーを受け付けない設定とかもできるけど間違って短時間でアプリをオン・オフした時にうまくいかないかな
2021/06/23(水) 12:41:15.75ID:gm+p/J/8
言い忘れたけど「何をしたいのか?」をマクロ実行前に事前確認して、設定変更されてなければマクロを実行するようにしてる
2021/06/23(水) 13:55:40.19ID:BkZUcdM1
>>959
緑の地の条件に1〜2秒自分の起動後は起動しないようにしてやればとりあえず簡単に抑止できるとは思う
アプリの起動を何で置き換え可能かはやってる内容次第なんでもうちょい聞き方工夫してほしいな
>>908>>959も外堀だけ具体的なんだが肝心の何をしてるかはサッパリ分からんのでねー
2021/06/23(水) 19:08:40.49ID:5LfHH5PX
トリガー
電池が85%まで達した時

アクション
スマートコンセントoff

MacroDroidだけじゃこういうの組めないのね
スキルないからスマートコンセント買えない
どなたか分かり易い解説サイト有れば頼みます
2021/06/23(水) 19:12:53.13ID:h4srlJID
一定間隔で繰り返して実行するマクロがあって
最初に実行した日時がファイル名のファイルを作成してそこにログを出力したいのだけど
繰り返し実行されるのでファイル名がその都度作成されてしまう
最初に実行したときに作成したファイル名にずっと保存したいのだけど

・1回だけ実行するアクションの定義ってないだろうか?(ファイル名の設定を行いたい)
・マクロの実行前にローカル変数を初期化するにはどうすればいいのだろうか?(ローカル変数の値がずっと残っている)
2021/06/23(水) 19:48:16.74ID:BkZUcdM1
>>964
対象デバイス依存でしょ
APIが公開されてるものはいくつかググると出てくるよ

>>965
初回実行時に日付を取得して変数に格納
以降値が入ってればそのまま使えはいいんじゃない?
てか同一ファイルに上書きなら最初から日付で修飾する必要ないんでは?
2021/06/24(木) 00:52:08.22ID:GROcqdaS
UI画面操作が一切反応しないんですが何か前準備が必要だったりします?
クリック[現在のフォーカス]のアクションを試す、で試しても何も反応しない状態です
android11です
2021/06/24(木) 01:23:43.68ID:5nNiRwYc
>>967
実際フォーカスがどこにも来てないからでは?
アプリでもウェブでもいきなり文字を打ち込んで入力可能だとフォーカスが来てる状態
ウィンドウやテキストフィールドをクリックして始めて文字が入力できる状態だとそれはフォーカスが来てないということ

テストでmacrodroidのウィンドウに入力を渡してもフォーカスはどこにも来てないから無反応で合ってる
試しにマクロ名のフィールドをクリックしてからクリップボードをペーストをテストしてみればいいよ
クリップボードに何かコピーされてればペーストされるでしょ?
2021/06/24(木) 09:13:09.43ID:zAP0ZF1u
>>963
自分で2回アプリを起動してるんじゃなくてマクロ側かアプリが勝手に2回起動挙動しているのかだと思います。目的はただ単に特定のアプリを起動した時に目的の所まで数タップしておいて欲しいだけ。
で、時間指定トリガーにしてみたらやはり二重にマクロが動いていたようで問題なく働きました。ただ時間指定だとロックされているときにはマクロは動けないので何か別のトリガーがやはり必要ですね。
2021/06/24(木) 12:05:12.12ID:5nNiRwYc
>>969
>>963の「自分」ってのはマクロ自身のことで人ではないよ
話のポイントは具体的にどんなマクロで何やってるのさ?ってことよ
置き換え可能なトリガが知りたいんだよね?

例えば>>893だとメディア再生開始したときフォアに対象にしたい再生アプリがいるか調べることでほぼ同等に置き換え可能
>>609なんかでもGPSが有効になったときフォアにマッチアプリがいるか調べればほぼ同等に置き換え可能

ただ漠然とアプリ起動って抽象的な話だとインテントで起動したいアプリのアクティビティでも叩いてみたら?くらいしか案がない
ただそれだとアプリ起動のアクションと変わらないと思うから効果があるかどうか

そもそも二重に起動することなんか普通ないからね
アプリ起動トリガは間違いなく起動が完了してから一度だけ呼ばれる
アクションで起動した後は実際に起動が完了したかウエイトとフォアのアプリチェックをループする必要があるけどトリガの場合必要ない
重複にみえることがあるとすれば同一マクロ別のトリガが発動してマクロ実行が中止されて再実行されているか
別の似たようなマクロのトリガが発動しているか
2021/06/24(木) 12:13:25.10ID:5nNiRwYc
>>964
あ、>>727のアプローチがリンク設定だけで完結するから簡便だと思うよ
キーボードインプットがあるから読み上げなくても設定次第でテキストをペーストでいけるんじゃないかな
2021/06/24(木) 12:49:11.55ID:J8G6fSQp
>>964です
>>966
APIで検索かけてもそれが何かもわからないのでそれ諦めます
>>971
Google homeというのを調べてみます
2021/06/24(木) 22:32:41.98ID:JCJRw0ZL
>>969
機種、OPPOだったりしない?
自分のRenoAはアプリの起動を条件にすると2回検知しちゃうから、対策必須。
カミさんのRedmiNote9Sでは同じマクロ使ってもそんな事ならないから、
OPPO特有の症状だと思ってます。
(フォンマネの省電力制御のせい?)
2021/06/24(木) 23:11:14.65ID:5nNiRwYc
>>973
こっちのreno aだとならないよ
64GBの標準SIMフリー版(楽天版ではない)
>>969>>973に共通する何かはあるんだろうね
特定のアプリ起動したときとか
特定の常駐アプリを併用してるとか
macrodroid自体の省電力設定をスマートに設定してもしないに設定しても影響なかったよ
2021/06/25(金) 09:33:56.93ID:g0h1yOoy
自分の楽天版Reno Aだと起動→終了→起動→終了と2〜10秒間隔でなりますね
アプリりよってもまちまちなので対策も時間じゃなくて受付条件とかで工夫が必要
2021/06/25(金) 09:37:04.06ID:C7H5/lrP
すみませんどなたか原因エスパーしてください
https://i.imgur.com/5TJDkN2.png

要はアイコンタップで自動回転の切替ですが
横画面時にタップし自動回転オフにすると強制的に縦表示になります

尚、MacroDroid経由でなく通知バーから
自動回転オンオフした場合このような症状なし
MacroDroid 重ねて表示権限オフです
2021/06/25(金) 09:38:16.19ID:C7H5/lrP
>>976
書き忘れ 泥10 デバイスはiplay40 というタブレット
2021/06/25(金) 10:08:54.00ID:MvDcr9nU
>>976
使ってるホームアプリが縦なんだと思うな
で回転切ったときに元に戻ろうとする
画面(スクリーン)カテゴリ内にある画面の回転を強制するアクションを使ってフルセンサにするのを加えれば解決すると思うよ
2021/06/25(金) 10:14:36.92ID:MvDcr9nU
>>975
時間が不定って起動前にネットからデータ取得していったん死んでから再起動してるか
サンドボックス内でアプリのウイルスチェックしてるニオイがする
確かなことは分からんがそんなのに心当たりない?
2021/06/25(金) 12:13:18.98ID:g0h1yOoy
>>979
画面が切り替わってデータをダウンロードしてるのでMacroDroidが誤認識してるんだと思ってます
2021/06/25(金) 14:32:13.43ID:C7H5/lrP
>>978
NOVAランチャー
とりあえずフルセンサやってみます
2021/06/25(金) 16:01:08.35ID:MvDcr9nU
>>980
モジュール型のマルチapkなアプリで自身の一部をアップデート後に再起動するものがあっても不思議じゃないな

アプリ自体はすごく小さくて常に実体をランタイムで取得しているものも
Androidで即コレってピンとこないが普通に有りそう
2021/06/26(土) 04:04:56.98ID:W+dh/Ytk
編集画面から、「URLを開く」を試験実行すると
「URLを開く」を含んでる編集中のマクロ自体が試験実行されちゃうんだけど、
これって不具合?
984散策人
垢版 |
2021/06/26(土) 07:12:40.84ID:hcoW9TWe
>>983 さん

お手数をおかけします。

マクロ編集画面の三点リーダーメニューの「マクロを試す」から試されていないでしょうか?

「マクロを試す」ですと、マクロ全体が実行されてしまいますので、アクティビティ単体を実行するなら「アクションを試す」で実行されると、単一のアクションを実行できます。

https://i.imgur.com/CHTDtKB.jpg
https://i.imgur.com/nwsPUwY.jpg

てっとり早い方法としては、
実行対象のアクティビティ(=アクション)をタップ頂き、表示されたメニューから、「アクションを試す」を選択頂く方法が楽ですので、お試し頂ければと存じます。

Macrodroid5.15.0が今朝日本のPlay Storeに降ってきて朝の5時台から日本語訳したところ、大きな変化は無いようですね。
Logcatの機能、使用されていらっしゃる日本のユーザーさん、いらっしゃるのかな…?
2021/06/26(土) 07:30:41.50ID:W+dh/Ytk
>>984
いや、その2番目の画像にある個別の「アクションを試す」をやると、
「Webサイトを開く」だけは編集中のマクロ全体が実行されるというはなし

あと、今の話とは関係無いけど、1番目の画像の「アクションを試す」も、青のアクション部分全体実行では?
「マクロを試す」との違いがイマイチわからなかったりする。
「マクロを試す」でやっても、特にトリガー待ちに入ったりするわけでもないようだし。
986散策人
垢版 |
2021/06/26(土) 08:09:15.48ID:hcoW9TWe
>>985 さん

なるほど。
あと考えられる可能性としては、
Webサイトが開かれた場合に発動するようなトリガーが、テストしようとされているマクロに含まれているようなケースですかね。

これ以上は、
組まれたマクロを見ないとなんとも…

お役にたてずに申し訳ないです。
987散策人
垢版 |
2021/06/26(土) 08:20:20.11ID:hcoW9TWe
>>985 さん

失礼しました。

添付のマクロで試してみました。
おっしゃる通り…不具合っぽい動きですね。
最新のMacrodroidで、

・アクションを試す

でも通知でちゃいますね。

通常、

・マクロを試す→マクロ全体を実行
・アクションを試す→直近で選択もしくは追加されたアクションを実行する

ですが、
制御が効いてませんね。

https://i.imgur.com/h1lS0py.jpg

マクロをエクスポートして頂いて作者(Jamieさん)に通報コースだと思います。

よろしくお願いいたします。
2021/06/26(土) 09:05:04.71ID:nCtdU90w
>>985
右上...のテストマクロとテストアクションの違いは結果的にコンストレイント(条件)を含む/含まないだと思うよ
テストマクロでもトリガ条件を満たしたとしてアクション実行に移るからトリガとアクションしかないマクロだと実質違いがなくて>>985の違いが分からんて認識になるね
2021/06/26(土) 09:18:29.90ID:nCtdU90w
>>987
バグだね
結果のレスポンスを待たないで処理を進めるケースが少ないからチェックが甘いんだろうね
2021/06/26(土) 09:55:09.21ID:W+dh/Ytk
>>988
そこは一応試したことあるよ
先のレスに書いた通り、トリガ待ちに入るわけでもないので、本当に違いが分からない
2021/06/26(土) 10:08:27.70ID:nCtdU90w
>>990
んと伝わったかな?伝わってるよね
緑の枠内に縛られるかどうかの違い
内部的にはトリガチェックを強制パスしてアクション実行に移るんじゃないかと
だから緑の枠に何も書いてないと一緒になるね
マクロ実行アクションのコンストレイント無視オプション有無とロジック一緒だと思うよ
992散策人
垢版 |
2021/06/26(土) 11:25:40.19ID:B2evOPeP
>>991 さん

お目汚し失礼します。
この認識(緑の条件欄記載によるコントロールを受ける)は誤りかと。

たとえば、
先に私が共有したマクロの場合、

通知を表示のアクションで「アクションを試す」を実行する→通知のみ表示され、Webページは開かれない(想定通りの動き)

Webサイトを開く/HTTP GETで「アクションを試す」を実行する→Webページが開かれて、かつ、通知も表示される(想定外の動き)

*つまり、Webサイトを開くのアクションが、想定通りの動きをしていない

…で、手元にある古いMacrodroidのapkで試すと、(流石に手元の携帯の設定を崩したくないので、Nexus7 2013に古いapkを入れて確認した結果として、)制御されているようなので、
バグかつデグレードでは無いかと考えます。

よろしくお願いいたします。
993散策人
垢版 |
2021/06/26(土) 11:29:35.09ID:B2evOPeP
>>989 さん

そうですね。
おっしゃる通りかと。

通報しようとしたら作者にバグ凸ボタンが無くなっているので、素直に新フォーラムで英語凸するか、他の公式フォーラム民の凸待ちかと。

…大変勉強になりました。
報告ありがとうございます。
2021/06/26(土) 11:34:15.75ID:nCtdU90w
>>992
http getアクション個別テストのバグの話はしてないよ
>>985後段の別件
右上...メニューにあるテストマクロとテストアクションの振る舞いの違いの話
2021/06/26(土) 12:15:30.12ID:nCtdU90w
>>993
処理が下に抜けるバグができちゃったのかと思ったら確かに全アクションテストになるね
こりゃ何かの拍子にメニューに引っかけてる処理を取り違えたんだな
前はちゃんと動いてたから少なくとも今年に入ってから混入したんだと思う

マクロ実行結果に誤りがでるわけじゃないから修正優先順位は低いと思うけどすぐ直せると思うし認識はしてもらっといたほうがいいかもね
2021/06/26(土) 12:44:44.90ID:nCtdU90w
>>983,993
一応フォーラムに書いといたよ
Thread '[Bug Repoort] HTTP GET action individual test does not work correctly' http://www.macrodroidforum.com/index.php?threads/bug-repoort-http-get-action-individual-test-does-not-work-correctly.702/
997散策人
垢版 |
2021/06/26(土) 12:51:01.53ID:B2evOPeP
>>996 さん

ありがとうございます!
お手数おかけします。

これで認識してくれたらfixされるだけですね。。

単語の使い方にどことなく上品な香りがしますね!
998散策人
垢版 |
2021/06/26(土) 19:00:54.04ID:hcoW9TWe
次スレ(955さんありがとうございます)

【自動化】MacroDroid Part3【マクロ】
https://egg.5ch.net/test/read.cgi/android/1624166960/
999散策人
垢版 |
2021/06/26(土) 19:03:23.07ID:hcoW9TWe
>>996 さん

早速「いいね」が付いてますね。
他にも困っていらっしゃる方が海外でも居たようですね。
ありがとうございます!
2021/06/26(土) 19:04:10.41ID:GYnWlVFO
ちょっと質問いいですか?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 195日 10時間 35分 10秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況