平时空闲时间不少,折腾完 VPS 之后开始琢磨能不能把日常生活也弄得更自动化一点,目光就落到了手机上。在解决某个具体需求的过程中,第一次接触到了 MacroDroid。这篇先记一下用 MacroDroid 实现手机自动解锁的方法,之后还能在这个基础上接上别的功能。
MacroDroid 是什么
简单说,这是一款本地运行的自动化工具,思路类似 Tasker,可以理解成一个进阶版、且完全跑在本地的 IFTTT。
免费版可以创建 5 个宏(Macro),每个宏可以理解为对应一个独立的小自动化任务,由三个要素组成。
部分动作需要 root 权限或者 adb shell 才能用,但也有不少功能是不依赖这些、本地就能完成的。
自动化的第一步:先解决解锁问题
很多时候,想让手机自动完成某个操作,最基本的前提就是「手机不能处于锁定状态」。比如希望某个 App 在每天固定时间帮你把它要求看的广告看完(看广告换高级会员之类的设计很常见),第一步就得先把手机解锁,这个需求也就由此而来。
我自己的需求来自之前用短信转发 App 的时候,从 Google Play 下载的这个 App 有一个「看广告换高级会员」的选项。
MacroDroid 里其实有一个看起来很友好、很省事的解锁选项,如下图,只有「屏幕锁定有效」和「屏幕锁定无效」两种状态可选。但天下没有这么容易的事——这个选项并不能真正帮你完成解锁动作,只能靠拆解需求、一步步自己实现。
解锁屏幕需要拆出哪些工序
这里以我自己用的 Pixel 7 Pro 为例。另外要先说明一点:不能指望 App 把指纹信息录进去再帮你自动解锁,所以拆解出来的这套流程用的是 PIN 码(理论上手势密码也可以,但没必要为难自己)。
把整个过程拆开后,从设备锁定状态到完成解锁,需要走完这几步:
- 点亮屏幕(此时通常优先显示指纹解锁界面)
- 由下往上滑动屏幕,把界面从指纹解锁切换到 PIN 解锁(如果设置了手势解锁也可以走那条路,但我没设手势,所以直接进 PIN)
- 输入 4 位密码
- 按下确认键(在我这台手机上显示为「<→|>」)
基本就是这几步。
具体设置
把原理搞清楚之后,剩下的配置就很直接了。最终设定好的宏大致如下图(密码部分已经隐去)。
有几个细节值得注意:
在做「由下往上滑动屏幕、把指纹解锁切到 PIN 解锁」这一步时,滑动的幅度不够会导致界面切不过去。如下图,我直接把纵向滑动设到了 900 多。
输入密码这一步可以直接靠文本识别完成,不用一个一个去抓坐标。
但最后按确认键这一步,文本识别认不出「→|」这个符号——至少我在 Pixel 7 Pro 上试下来是这样。这时候就需要直接抓确认键所在的坐标。不用抓得太精确,大致估个位置后,用上图里的「在应用中识别」功能,点一个邻近、且能有反应的元素(比如某个图标),周边坐标也会一并被获取到。我这台手机上最后用的是(751,1857)这个坐标。
另外,有些工序之间最好留几秒等待,尤其是手机反应慢一些的情况下会更稳。配置图里第一步等 5 秒是调试时用的——开始测试后得留几秒时间把手机锁上才能继续测,正式使用时这个等待时间可以不设。
调试完成后,实际效果可以看这段录屏:
(完)







.png)

