前言

  • 我们常常被苹果手机上的快捷指令搞得垂涎三尺,手机上有了这个小物件可是让学习办公事半功倍啊。这次安卓君也有福利了,这款APP就叫做Macrodroid!
    如果想要实现更加高级的功能,推荐Tasker这款软件。可以尝试参考我的另一篇文章:安卓自动化APP——Tasker

一、软件介绍

  • Macrodroid 是一款在安卓手机上通过自定义的方式对手机进行一些自动化控制的软件。软件的逻辑是通过触发>>>动作约束条件来进行控制。
图 1 软件截图

这款软件中基本囊括了安卓手机里的所有传感器来作为触发器,例如光线传感器、加速度传感器、GPS、NFC等,并且通过各种开放API实现了快速修改系统设置、语音播报,自定义通知、邮件收发、拍照、手势操作、日志记录等功能,最重要的是支持shell命令,和tasker插件调用和备份。如果获取Root权限将会有更灵活的功能。具备功能强大、界面清新、操作简单等多方面优势。

二、功能分析

触发器(只分析不易操作的,下同)

  1. 连接>>>Webhook(Url)——这个是将自定义识别码和你手机的相关参数转换成短链接,当任何人访问这个短链接时,触发动作。因为这款软件服务器所在位置的原因,网络延迟会非常高,这个触发器常常很难起作用。
  2. 位置>>>位置触发器地理位置触发器天气日出日落——因为默认API采用谷歌地图和众所周知的原因,触发可能会不准确。
  3. 应用程序>>>程序打开/关闭,当应用在后台存活的时候再次打开程序不会触发。同理,应用返回桌面或切换到其他应用不会触发(关闭),只有杀掉后台时才会触发。
  4. 用户输入>>>音量键长按长按1s后松开就会触发,而不是一直长按触发。

动作

  1. 发送intent——利用安卓四大组件中的intent来跳转应用界面或应用内部和应用间数据的。比如要打开QQ指定联系人的聊天界面,就向QQ发送一个外部intent,在动作里填写android.intent.action.VIEW在数据里填写mqqwpa://im/chat?chat_type=wpa&uin=[lv=QQ号],方括号即QQ号变量,如下图所示:
图 2 intent 配置

  1. 麦克风录音——可以设定直到录音取消,然后用取消录音结束录音,实现自定义控制录音和结束。
  2. 亮度——因为品牌手机和原生安卓系统的亮度值范围不同(原生安卓是0-100),所以当亮度不能按照比例变化时,可以勾选Android9+模式,或使用自定义滑块值在大于100的范围尝试调节亮度。
  3. 系统报时——这个需要安装TTS(语音转文字引擎)才可以使用。
  4. 声音搜索——这个是基于原生安卓的语音助手来实现的。国内品牌手机可能无法使用。若要使用,可以安装谷歌框架后安装谷歌语音助手实现。
  5. 系统设置——这个是通过配置手机/data/system/users/0/目录下的
    settings_global.xmlsettings_secure.xmlsettings_system.xml这三个文件来实现手机设置的,具体对应的设置可查看Android API。这个功能的原理和下文 9. shell脚本中的settings命令是一致的。
  6. 分享位置信息——同触发里相同,采用谷歌地图API,可能定位不准确或失败。
  7. 写入文件——采用UTF-8编码写入文件,可以自定义后缀名。
  8. shell脚本——等同于在电脑上使用ADB工具中的adb shell 命令,但在手机上运行需要Root权限。常用的shell命令可参考此链接(不是我的文章),也可以直接搜索相关帖子。链接中包含adb shell命令的在此APP中只需填shell后面的内容,最后勾选已Root即可。
  9. 文本操作——此功能可以对APP中的局部变量和全局变量还有Android中的系统相关变量、信息等,进行截取、替换、和格式化操作,并支持正则表达式。
  10. 等待下一步操作——延时功能,最少10ms。一般具有长时间响应的动作前后最好添加此动作,不然会导致应用卡死。
  11. 发送电子邮件——Gmail账户可能无法使用。SMTP邮箱需要配置。详情可参考QQ邮箱配置。具体方法如下图所示:
图 3 SMTP服务配置

  1. SMTP服务器地址:smtp.qq.com
  2. SMTP服务器端口:465
  3. 勾选使用身份验证
  4. 用户名:你的QQ邮箱账户
  5. 密码:在QQ邮箱设置>>>账户>>>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务项目下的温馨提示中点击生成授权码即可获取密码(不要填写QQ邮箱登录密码)

约束

约束条件的特性同触发器,条件可以互相嵌套。第一级逻辑关系为并集,即同时满足下方所有条件时执行。

变量

变量是本APP中用来存储,传递数据的量,可以作为触发条件和约束条件。变量可以嵌套,但要注意里外关系。局部变量只可一在同一个实例中使用。全局变量可以在全部实例中使用。整数变量最大值为2^32即4294967296

三、注意事项

  • 触发、动作、限制,在每一个功能按钮长按或点击右上角问号图标都会显示帮助,编辑状态时长按也会弹出帮助。
  • 功能按钮中标注有Root的需要获得Root权限,标注ADB的需要通过ADB工具打开Macrodroid的ADB权限,同时标注的任意条件达到就可以使用
  • 若要保持应用后台长期有效,请在各品牌手机中锁定后台忽略电池优化并打开自启动开启必要权限、打开无障碍开关等相关设置.

写在最后

在使用软件的过程中,如遇到问题的或是有不明白的地方又或在本文中没能阐述清楚的、不恰当的,欢迎留言评论,我会尽力一一回复,并在后续中加以修正!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐