使用MacroDroid实现自动解锁手机的操作

平时空闲时间不少,折腾完 VPS 之后开始琢磨能不能把日常生活也弄得更自动化一点,目光就落到了手机上。在解决某个具体需求的过程中,第一次接触到了 MacroDroid。这篇先记一下用 MacroDroid 实现手机自动解锁的方法,之后还能在这个基础上接上别的功能。

MacroDroid 是什么

简单说,这是一款本地运行的自动化工具,思路类似 Tasker,可以理解成一个进阶版、且完全跑在本地的 IFTTT。

get it on google play

免费版可以创建 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 秒是调试时用的——开始测试后得留几秒时间把手机锁上才能继续测,正式使用时这个等待时间可以不设。

调试完成后,实际效果可以看这段录屏:

(完)

分享或订阅:
🧡 喜欢我的内容?欢迎点击 订阅 RSS Feed 获取最新文章更新。