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

レス数が950を超えています。1000を超えると書き込みができなくなります。
1名無しさん@お腹いっぱい。
垢版 |
2020/12/13(日) 08:29:00.13ID:EMe38Tds
Androidの操作を自動化するアプリMacroDroidの専用スレです。
マクロ製作の質問や情報交換をしましょう。作成したマクロの共有も大歓迎です。

次スレは>>950が立てること。立てられない場合は>>980が代わりに立ててあげてください。

*MacroDroid - Device Automation
https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid

*前スレ
【自動化アプリ】MacroDroid【仮設】
https://egg.5ch.net/test/read.cgi/android/1549611810/

*関連スレ
Tasker Part8
https://egg.5ch.net/test/read.cgi/android/1463512279/
Tasker 質問スレ 19
https://egg.5ch.net/test/read.cgi/android/1570691230
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のウィンドウに入力を渡してもフォーカスはどこにも来てないから無反応で合ってる
試しにマクロ名のフィールドをクリックしてからクリップボードをペーストをテストしてみればいいよ
クリップボードに何かコピーされてればペーストされるでしょ?
レス数が950を超えています。1000を超えると書き込みができなくなります。
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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