自动化工具能帮助我们摆脱繁琐的操作,提高效率,它的使用难度也介于手动操作与自己写程序之间。但是自动化工具有一个很明显的限制,那就是它支持的激活事件完全取决于开发者的适配,开发者没有写进去的就没有。比如一般自动化工具都有「当闹钟停止」、「到达特定位置」等激活事件,但一般都没有「当推迟闹钟」、「当打开某个第三方应用」这类激活事件。
如果自动化应用没有某些操作,懂得编程的人还可以自己做出来(比如 Tasker 没有上传图片操作,就可以用 JavaScript 自己写一个),但如果没有我们想要的激活事件,除了反馈给开发者尽快适配之外也没有其他办法。
而最近 Android 自动化应用 Tasker Beta 版本更新,带来了全新的 Logcat Entry 功能,作者把它誉为「Game Changer」级别的功能,让用户也可以自己定义激活事件了。而在开发者 Reddit 发布更新帖子里面,针对这项功能最多人感兴趣的就是如何利用它不同指纹解锁执行不同任务,所以今天就以这项任务为例,带大家了解一下这项新功能到底是什么,以及怎么用。
[rihide]
Logcat Entry 是什么?
这次更新的 Logcat Entry,简单来说就是可以利用特定系统日志(Logcat)作为激活事件。为了方便调试和返回错误信息,我们在手机上执行的每一步动作系统都会自动记录进日志,而应用开发者也可以在程序里面设定把特定信息写入系统日志的命令。
由于我们在手机上所有动作都会有记录日志,那么只需要让 Tasker 知道我们想要的激活操作对应的系统日志内容并设定为参考文本,然后不断地扫描系统日志,那下次再出现相同日志内容时 Tasker 便知道我们做出了对应操作,从而实现激活事件的功能。
那么如何让 Tasker 知道我们想要的激活操作对应的系统日志内容呢?Tasker 给出的解决方法是让用户自己动手做一次并录制下来,Tasker 新版本中内建了一个日志抓取工具,用户在配置文件中选择 Logcat Entry 之后手机会自动返回桌面,并出现这个抓取工具,接下来用户只需要点击抓取按钮并在最短时间内执行自己想要作为激活事件的操作(点击推迟闹钟按钮、拔出三星手写笔 S Pen 等),执行完毕后在最短时间内点击停止抓取,抓取工具就把这段时间内所有的系统日志抓了下来。
抓完之后,Tasker 会自动弹出操作界面并显示刚刚抓到的所有日志,用户只需要找出和自己操作对应的日志就可以把它当做激活事件了。
介绍完它是什么,我们已经能感受到 Logcat Entry 这个杀手级功能有以下的优点:
- 目前没有的激活事件不用等待开发者适配。我们自己动手抓取相应的系统日志就可以新建对应的激活事件,不用再反馈给开发者,然后等待开发者若干个版本后再适配。
- 开发者适配不了操作也能成为激活事件。像是打开某个应用内部界面(比如支付宝领积分界面),或第三方应用内的某个操作(比如微信给某个人的朋友圈点赞)这种自动化应用开发者根本适配不了的操作,利用抓取系统日志的 Logcat Entry 也能成为激活事件。
- 轻松某些手机特殊硬件或者配件。不用拥有开发者编程的能力,我们也可以简单的自定义特殊的手机硬件或者配件了。比如 Google Pixel 4 的雷达隔空特定手势和三星 Note 系列手写笔 S Pen 的远程特定手势都可以作为激活事件了。
- 不用 root 就可以自定义按键。如果我们抓取某个硬件按钮按下/双击等操作的日志并连接到自己的任务,那么相当于实现了自定义按键的功能。
知道了这项功能的原理和优点,接下来就以实现不同指纹解锁执行不同任务这项功能为例,给大家说说如何使用 Logcat Entry 功能。
实现不同指纹解锁执行不同任务
按照上面的演示视频,最终的效果是食指解说可以打开支付宝付款码,中指解说打开微信,无名指则可以打开 QQ。
想要直接使用的同学也可以直接下载配置文件(官方导入链接、单独配置文件)导入到 Tasker 中直接使用,将打开支付宝付款码、微信、QQ 等任务替换为你自己的任务即可。
不过由于每个系统对于指纹解锁这个事件的记录日志都不一样,直接导入可能用不了,所以还是建议大家跟着下面的步骤自己制作配置文件。
制作过程
接下来简单说说整个任务的制作过程。
获取日志权限
为了保证系统信息安全和用户数据隐私,Andorid 默认第三方应用是没有办法读取到系统日志的,但是为了方便开发者调试应用,系统内还是留下了读取系统日志的 android.permission.READ_LOGS
权限。为了让 Tasker 能够读取到系统日志,我们需要利用 adb 命令来允许 Tasker 读取系统日志的权限。
-
启用开发者选项,在系统设置中点击「关于手机」然后不断点击版本号直到手机提示「已启用开发者选项」。
-
回到系统设置中,我们已经可以看到「开发者选项」这个选项,点击进去打开「USB 调试」设置。
-
在这里下载对应系统的 ADB 工具包然后解压到电脑任意目录。
-
将手机连接到电脑,同意手机弹出的「是否允许本机进行 USB 调试」或者类似提示。接着打开刚刚解压好的 ADB 工具包目录,然后在 Windows 资源管理器的地址栏(显示文件路径那里)输入
cmd
,按下回车。 -
可以用
adb devices
查看手机是否已经连上电脑,接着分别输入下面两条指令(每次输入一条,回车后再输入另一条)获取读取系统日志的权限:adb shell pm grant net.dinglisch.android.taskerm android.permission.READ_LOGS
adb shell am force-stop net.dinglisch.android.taskerm
如果是 macOS 的话,输入下面的两条指令:
./adb shell pm grant net.dinglisch.android.taskerm android.permission.READ_LOGS
./adb shell am force-stop net.dinglisch.android.taskerm
获得相应权限之后,现在 Tasker 已经能够读取系统日志。获取权限的操作只需进行一次,以后除非卸载应用不然都不需要再重新授权。这些步骤只针对非 Root 手机,Root 手机上 Tasker 可以自动获取这些权限。
录制指纹解锁动作
现在我们已经能够读取系统日志,接下来就要开始录制不同指纹解锁的动作了。
在 Tasker 配置文件界面中,点击右下角加号新建一个配置文件,并选择「事件 – 系统 – Logcat Entry」:
在操作界面中点击 Component 右边的放大镜,我们会发现手机会自动回到桌面,并出现一个带「Click to start logging」提示的按钮,这就是前面提到的系统日志录制器。
接下来的步骤就比较直接了,「点击开始录制按钮 – 关闭屏幕 – 用你喜欢的指纹解锁屏幕 —— 就像平时解锁手机那样 – 点击停止录制按钮」。
这一步的目的是让 Tasker 记录这一段时间内包括指纹解锁动作的所有系统日志。按下停止录制按钮后,手机会自动跳到刚刚的 Tasker 操作界面,并弹出抓到的所有日志。
拿到指纹解锁日志
从上面的图中我们可以看到就解锁这一个这么短的时间内,已经抓到了非常多的系统日志。
接下来我们要从里面找到解锁成功的动作,在日志列表下面的搜索框里面输入能够过滤出相关命令的关键词,比如这次就是 fingerprint
,令 Tasker 只显示包含关键词的系统日志,接着很容易就发现:
FingerprintService:onAuthenticated(owner=com.android.systemui, id=1821959201, gp=0)
这条就是我们要找的日志。其中冒号前面的表示这条日志是由指纹相关的服务记录的,冒号后面的则是记录条件(当指纹识别成功时)和数据(哪个应用请求识别指纹,指纹 ID 等),直接直接点击这条日志就能把它创建为我们的激活事件。
生成配置文件,对应相应任务
生成激活事件后,在自动弹出来的任务选择框中新建一个任务,现在你可以在任务事件里面添加任何你喜欢的操作。
按照我们现在的例子之一 —— 打开支付宝付款码界面为例,任务编辑界面,「点击右下角加号 – 网络 – 浏览 URL」,输入你喜欢的支付宝 URL Schemes:
- 支付宝付款码:
alipayqr://platformapi/startapp?saId=20000056
- 支付宝扫一扫:
alipayqr://platformapi/startapp?saId=10000007
返回即可。这样就实现了当我们用录制的手指指纹解开手机时,自动打开支付宝付款码的自动化任务。以此类推,我们也可以用同样的步骤给其他手指指纹添加打开微信,打开 QQ 等任务任何你喜欢的任务,也可以将指纹解锁这个操作改成双击音量键甚至是拔出 S Pen 并画一个圆等任何你喜欢的激活事件。
总结
通过今天的任务,我们基本了解了 Tasker Logcat Entry 是什么以及如何使用它。只要有对应的系统日志,我们便能将任何操作都变成激活事件,让我们在打造自动化任务时更加得心应手。
[/rihide]
暂无评论内容