Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


经过半年之后 Tasker 又迎来了一个小更新,跳了一个 小版本号来到 5.9.3。有一说一,Tasker 可以说是性价比相当高的一款应用,伴随着 Android 成长更新了 10 多年,虽然中途更换了开发者,每次更新还是相当有诚意。这次更新也不例外,更新历史相当丰富。

本文将从 Tasker 5.9.3 的更新解析入手,构建一个用重力传感器触发的侧卧提醒动作,顺带介绍一下 Android 的传感器知识,试图串联一下更新功能。

更新解析

这部分其实开发者已经做好了亮点解析和 视频演示。如果想了解细节和具体使用方法,看视频会更直接。如果已经有 Tasker 的一些基础认知,这里我们简单过一下新功能。

如果想直接看 Tasker 实战部分请直接移步到「实战:用 Tasker 构建侧卧提醒」部分。

传感器

本次更新在传感器上的增强是加入了以下三个东西:

  1. Any Sensor —— 顾名思义,就是任何传感器。Tasker 现在除了之前内置的一些传感器触发条件之外,可以扫描手机上所有可用的传感器进行状态触发。理论上来说就可以构建出任何想要的手势、姿态来进行触发。
  2. Test Sensor —— 这个动作会返回所选的传感器的当前值,作为参数进行任何你想要的计算。
  3. Sensor Info —— 这个和 Test Sensor 不同,是获取传感器本身的信息,比如名称、能耗、取值范围等等。

对我们最有用的就是 Any Sensor。在实际进行操作之前,我们先简单了解一下 Android 设备上通常存在的传感器。官方文档 中,把传感器分成了三类,分别是:

  1. 动态传感器 —— 用来监视设备的运动,最常见的包括基于硬件的加速度计(Accelerometer)、陀螺仪(Gyroscope),和重力(Gravity)、线性加速度(Linear acceleration)、旋转矢量(Rotation vector)、计步器(Step counter)、步测器(Step detector)等可能基于硬件也可能基于软件(即用其他硬件传感器计算得到)的传感器。
  2. 环境传感器 —— 用来测量周围环境的各种参数。比较常见的就是光线(Light)传感器,可以用来自动调节屏幕亮度。
  3. 位置传感器 —— 用来确定设备的位置姿态。比如地磁场(Geomagnetic)和邻近(Proximity)传感器。前者加上加速度计就可以确定屏幕朝向(Orientation),实现自动横屏;后者可以检测到手机在贴脸通话。

对于具体传感器原理和采集到的数值,可以自行搜索。这里只要熟悉各个传感器一般的用途和英文名称。每个手机配置的传感器略有不同,尤其是基于软件的传感器比如我的一加 8 Pro 在官网参数里有这些传感器。这里的电子罗盘即磁力计,用来确定姿态;Flicker-detect 是拍照时用来检测以固定交流电周期内工作的人工光源周期,使得快门和交流电周期相同以消除图像中产生的条带1

一加 8 Pro 的传感器
Any Sensor 扫描到的传感器

在 Any Sensor 中,可以看到能够使用的所有传感器。其中 Wakeup 和 Non-wakeup 是指传感器是否需要唤醒 SoC 进行工作。Uncalibrated 指传感器是否进行校准2。如果想要进一步了解各个传感器,可以参考 这个链接

对话框

现在 Tasker 提供了列表和文字对话框:

  • 可以显示列表进行单选和多选操作
  • 可以显示一个带按钮的对话框
  • 支持用 HTML 来自定义颜色、大小等

如图可以显示一个单选的对话框,列表标题、内容和按钮都可以自定义,特别适合一些需要交互进行的任务。

List Dialog

完整的勿扰模式控制

除了可以开关勿扰模式之外,也支持勿扰模式的各个精细设置,比如只允许联系人通话和短信、设置允许通知的类型等等。

完整的勿扰控制

其他

其他有意思的更新有:

  • 可以在支持的应用从通讯录自动发送消息、发起视频通话,在我的手机上能看到 TIM 和 Duo 是支持的。
  • Tasker 任务之间传参数量现在没有限制。
  • 可以通过链接来触发任务。比如浏览 这个链接 会显示一个 hello 的 Toast 提示。如果还记得 上篇文章 ,这其实就是深度链接(Deeplink)。

奇思妙想

那么我们能用传感器做什么呢?理论上来说可以构建出任何你能想到的动作、姿态的识别。比如说最近比较热门的一个应用 TapTap,其实是移植了 Google 在 Pixel 中用机器学习构建的双击手机背面的「传感器」事件。这里我简单写几个我想到的可以实现的任务,大家可以在评论区头脑风暴一下:

  • 一个专属的自动屏幕亮度调节器。很多人会抱怨手机的自动亮度调节不好用,那么其实就可以用比如双击手机背板触发 Test Sensor 读取光线传感器的值,实现做好符合自己不同场景下和屏幕亮度的映射关系,通过 Tasker 自动调节亮度。
  • 一个侧卧提醒器。像我晚上经常不自觉地在床上侧躺玩手机,相当不健康。希望每次这样的时候能够提醒我放下手机去睡觉。

实战:用 Tasker 构建侧卧提醒

首先附上 taskernet 的链接,点击导入 。导入任务应该就可以工作,不过要注意我的传感器名称和数值设置可能和你的情况并不相同,需要重新设置传感器。另外我有一个全局变量会记录自己是否在家,如果不需要使用请删去。

侧卧提醒

状态编辑

这里最主要的触发就是两个侧卧的识别。这里用到的就是重力传感器。进入状态编辑之后,选择 Any Sensor,并按类型边上的搜索图标,选择 gravity Non-wakeup (或者其他名称)。首先会让确定使用传感器的类型或者名称,如果是自己使用,选择名称即可。

然后找到一个侧躺的方式使用手机,标定各个位置下的传感器数值。这里稍微移动一下手机取两个值即可。

下面是设置误差范围,设 1~2 均可,自己预估一下容许的传感器值的区间。

接下来换个方向躺着再来一遍。这是因为传感器的坐标轴是图中所示,两个方向侧躺用手机的时候,重力在 x 轴上的分量是相反的。

Android 手机传感器坐标轴

动作编辑

执行的动作完全由你自己决定。你可以直接锁屏,我选择的是弹出一个对话框(刚好用到新特性),然后执行各个按钮的操作。

三个按钮分别是:

  1. 锁屏
  2. 继续玩 —— 会把「侧卧提醒」的任务关闭,并且手机会无奈地发出一声「好吧」
  3. 勿扰模式 —— 会打开自定义的勿扰模式(强行关联更新内容)
自定义对话框

后记

Tasker 其实我很早就购买了,但是也是最近开始使用和研究它,真的相当有趣。其实各大厂商也在发力自动化任务相关的产品,不过和 Tasker 相比的设计理念其实略有不同。Tasker 定制化更强同时比较难以上手,而厂商有更高的权限、更多的人力来封装和提供高级、具象的接口,但是底层的比如传感器的接口就不会提供出来。生活中其实大家可以常常思考在手机上的重复性操作或痛点是什么,尝试用 Tasker 简化或者解决一下,这点折腾的时间其实很有乐趣。