macrodroid吧 关注:556贴子:1,015

讲讲使用几个月macrodroid的心得

只看楼主收藏回复

macrodroid使用心得


IP属地:广东来自Android客户端1楼2022-07-13 16:21回复
    这个帖子主要已5.25.6版本讲解
    1.比较常用的几类触发器
    手机当前的某个状态:
    电源的连接与断开:比如需要在连接电源时语音提醒"电源已连接"此类的功能
    电量:比如电量低于多少时提醒我该充电了,或者是打开省电模式
    以及屏幕的方向、电池的温度、蓝牙连接与断开,nfc标签等等
    通知触发类:
    收到短信:比如在收到验证码短信时,自动提取验证码可以用此触发器。当然通知触发也是同样能做到的
    接到呼叫:比如来电自动接听或者拒接
    收到intent:这个功能在动作的时候再来说说
    系统日志(logcat消息):这个功能需要adb或root权限,但是即便是有权限还是很难准确的抓取到对应的系统日志,对于已root设备推荐写轮眼去抓取日志
    定时触发:主要可以用来做自动打开,自动签到,或者是日历中的某个事件做某件事
    屏幕识别:识别当前屏幕是否有指定的控件,可以用屏幕内容或者插件autoinput去作为触发器
    其他的触发器就不细说了。


    IP属地:广东来自Android客户端3楼2022-07-13 16:23
    回复
      再说说动作吧:
      动作就是手机识别到对应的触发器时要做的事情,比如接听电话、打开静音模式,更改手机的某个状态等等
      对于此类能直接更改某个状态的就不讲了,因为大部分都是直接就能用的,用不了可能是权限没给够,或者是安卓版本过高,某些功能在高版本中失效导致的
      ①先说说变量吧,要想做出来的宏可玩性、可操作性高,变量是不可避免的变量赋值的几种方法:直接赋值、取随机数、用户提示、表达式。
      直接赋值:可以对变量赋予某个特定的值
      取随机数:比如说钉钉打卡,我不想钉钉打卡每次都是准时准点的触发,而是在七点到七点半之间随机取一个时间进行打卡,这时我们可以取一个随机数,然后打卡之前延时这个时间在进行打卡,取随机数的两个方法,第一个就是变量里面有个随机可以直接取一个随机数,第二个就是在表达式里面用RANDOM()函数在[0,1)之间取一个随机数
      用户提示:在运行宏的时候会弹出一个输入对话框让我们来手动填写变量的值
      表达式:表达式里面我们可以对变量进行某些函数的运算,比如取随机数,绝对值,三角函数等等。也可以对变量取一些系统值,比如时间、电量、音量、安卓版本等等。再则还可以进行变量与变量之间的运算,比如说我想设置变量_1的值等于变量_2加上10,就可以用表达式。
      两种字符串转换为整数或者十进制的方法:
      第一种:设置变量在表达式里面选择字符串变量值,可以直接将字符串转换为整数或者十进制
      第二种:前提是你要转换的变量是数字才可以,我们在表达式那里手动输入要转换的字符串变量就OK了,要是字符串没有赋值或者不是数字是点不了确定的







      IP属地:广东来自Android客户端4楼2022-07-13 16:58
      收起回复
        文本操作:
        文本操作有:字串、替换全部、提取文本、大写、小写、清除空格、拆分数组几种方式
        字串:比如说我想提取字符串里面第2个字符或者第3到第10个字符就可以用字串来提取
        替换全部:比如我想把字符串里面所有的3替换成叁,或者将字符串里面所有的空格清除(当然清除空格也能做到)。
        提取文本:最简单的例子就是提取短信验证码了,不过提取文本可不单单只能提取验证码那么简单,这里就不详细讲了,下面放一个正则表达式的使用教程,有需要的可以自己看看。链接:网页链接
        拆分数组:这是5.25版本的新功能,这个功能挺好用的,可以讲字符串拆分成一个数组我有一串字符串,我想把他从逗号之间拆开放入一个数组里面就可以用拆分数组的功能了






        IP属地:广东来自Android客户端5楼2022-07-13 17:26
        收起回复
          读取屏幕内容的几种方式:
          1. macrodroid自带的读取屏幕内容(添加动作>>屏幕>>读取屏幕内容)
          2. autoinput插件
          3. touchtask插件
          对于这两个插件其实能做的事基本差不多,不过我更倾向于autoinput,autoinput可以直接将读取到的内容添加到数组。而touchtask只能添加到字符串变量中,要是需要对屏幕内容进行遍历来判断的话,就需要先对其进行拆分数组,但是屏幕内容可能会存在与拆分数组相同的字符,这个时候拆分是会出一点问题的
          autoinput识别任意屏幕内容方法(首先得安装了autoinput插件):
          1,插件里面选择autoinput,之后选择autoinput UI Query,就进入到了autoinput的设置界面了
          2,要是想识别任意屏幕内容,就直接点击右上角的勾,要是想设置只在某个APP里面识别或者只识别某个文本就可以在这个页面设置
          3,进入设置变量的页面,设置我们需要的变量就好了,变量类型支持字符串、数组、字典




          IP属地:广东来自Android客户端6楼2022-07-13 17:58
          收起回复
            说说界面交互,想要进行打类的操作,界面交互是必不可少的
            点击的方式:
            点击焦点:会点击当前焦点位置
            点击文本内容:比如说我想点击"主页"这个文本,或者包含"主页"在内的文本都可以用文本内容
            坐标点击:要是我们知道坐标就可以手动输入进去,当然不知道也是可以查询的,方法见图
            在应用中识别:点击之后会返回桌面,这个时候我们找到要点击的元素的页面,下拉状态栏点击识别UI控件,之后点击一下我们要识别的控件,返回macrodroid就可以了
            查看ID:通过其他的APP知道我们要点击的控件ID之后,可以手动填写在这里



            IP属地:广东来自Android客户端8楼2022-07-13 18:33
            回复
              讲讲对话框UI:
              macrodroid里面用来进行人机交互的对话框挺少的,差不多相当于没有这里推荐一个插件:UItask
              UItask能设置的对话框种类还是挺多的,比如说列表对话框、文件对话框、输入框等等,基本上能够满足我们一些要求,
              当然有时候里面的功能还是有不能满足我们需求的时候, 比如说我们用macrodroid做一个发送邮件的宏,正常来做就只能一个一个输入框来输入我们要发送的信息了,这个时候我想是要是有个能在一个对话框里面输入多个数据就好了,但是对于macrodroid以及UItask来说确是没法做的,这个时候我们可以用autojs或者tasker来做,但是做出来怎么传递参数确是个大问题了,下面就说说我是怎么传递参数的



              IP属地:广东来自Android客户端9楼2022-07-13 18:59
              回复
                macrodroid与tasker间接传参的方法:
                将我们需要传递的参数保存到一个文件里面,之后读取这个文件就可以了
                保存文件:添加动作>>文件>>写入文件
                读取文件:方法① 添加动作>>文件>>从文件中读取
                方法② 使用shell脚本cat命令



                IP属地:广东来自Android客户端10楼2022-07-13 19:08
                回复
                  macrodroid与tasker直接传参:
                  通过广播broadcast传参
                  ①macrodroid传参给tasker




                  IP属地:广东来自Android客户端11楼2022-07-13 19:23
                  回复
                    tasker传参给macrodroid



                    IP属地:广东来自Android客户端12楼2022-07-13 19:33
                    回复
                      终贴吧,不知道有啥要说的了


                      IP属地:广东来自Android客户端13楼2022-07-13 19:44
                      回复
                        最后来个贴吧签到的宏,配合着微动手势做的,比如钉钉打卡都可以用这种方式做


                        IP属地:广东来自Android客户端14楼2022-07-13 20:06
                        收起回复
                          1. 设置>>触发器选项>>位置触发器>>位置更新频率将这个值设小,就能更加准确的触发了,但是同样的也会增加手机的耗电,看你怎么取舍了,但是你可以给触发器加一个约束,比如约束他每天七点半到八点才能触发,这样其实也不会增加什么耗电
                          2. 你把自启动打开,这样就算清了后台无障碍也不会掉,我就是这样的。你要是既不想把自启动打开,又想清后台之后无障碍不掉这个没办法,不止macrodroid,其他的APP也都不行。要是设置了自启动无障碍还是会掉,可以试试看更新完整版的安卓系统,可能是你系统的原因
                          @鳄鱼nie泪


                          IP属地:广东来自Android客户端15楼2022-07-14 01:07
                          回复
                            我权限全开,就这样了,想把这几个弄掉,但又不影响到权限




                            IP属地:四川来自Android客户端16楼2022-07-16 11:07
                            回复
                              想设置个充满电自动提醒,老大帮看看为什么没有效果呀。


                              IP属地:北京17楼2022-08-07 11:17
                              收起回复