前言

本文介绍另一款安卓手机自动化软件,名为Tasker。与之前介绍的一款自动化软件原理相似。如需要,请参考我的这篇文章——安卓自动化APP——Macrodroid。Tasker这款软件也是通过触发器>>>任务的原理实现自动化的。但这款软件相较Macrodroid更底层一些,同时也更难操作,需要的专业知识更多。

一、软件介绍

软件特色

  1. 支持自定义简单的场景,类似APP的一个页面一样。
  2. 支持shell脚本,JAVA函数、JavaScript脚本和SL4A脚本。
  3. 支持其他软件快捷方式调用。
  4. 可以制作摩尔斯电码。
  5. 支持简单的图片处理,和压缩、解压、SQL数据库读取基本操作。
  6. 支持Tasker插件和第三方插件。
  7. 不必提前声明变量,在任务中定义变量会在变量中自动出现。
  8. 变量支持Json、HTML/XML、CSV格式。
  9. 支持CPU调控。
  10. 支持复杂的手势操作。
  11. 可以和Macrodroid嵌套使用。

使用逻辑

  • 通过在配置文件中添加触发器,然后指定触发器要执行的任务。并且通过局部变量、全局变量传递各任务、场景之间的数据。如果需要条件限制可以在任务中配置 If 条件即可。

注意事项

  • 若需要任务保持后台运行,需要在手机中打开自启动、关闭电池优化、锁定近期任务(各品牌手机可能有所差异)。
  • 各功能需要足够权限,请在主界面右上角选择更多>>Android 设置中依次点击各权限允许即可。(无障碍可能会在软件结束运行后失效,需要重新授权!新版本Tasker支持无障碍保活。)
  • 注意保存提交, 编辑完任务后要记得在主界面点击上方的 按钮提交或按手机返回键 (不是home键) 提交保存才能生效。

二、使用教程

配置文件(介绍几个难以理解的,下同)

包括事件、位置、应用程序、时间、状态这几类。其实都可以看做同一种——满足某种触发条件。选择好配置文件后按照软件提示选择或者新建一个任务,然后继续查看本文之后的任务一节。

图1 配置文件示意图
  1. 事件>>>传感器>>>手势

在名称中填入手势名称后,长按音量键开始记录手势。此事件利用手机的加速度传感器、陀螺仪传感器等,记录手机在空间中X、Y、 Z、三个轴的相对方向和位置,形成运动轨迹,当手机再次识别到类似的轨迹后触发动作。

图2 手势编辑示意图
  1. 事件>>>系统>>>剪贴板已改变
    在Android 10系统后剪贴板后台读取权限已被官方限制(后台写入权限不受限制),并且在手机息屏状态下,剪贴板也不能不能读写。 忽略Tasker设置可以过滤掉Tasker自身对剪贴板的修改。
  2. 事件>>>系统>>>Logcat 入口
    此功能需要ROOT权限,利用安卓手机的adb logcat功能抓取手机日志作为触发器,利用此功能可以获取系统中绝大部分事件进行触发,包括intent,指纹,通知等。
  3. 事件>>>系统>>>收到的意图
    此功能为Android系统组件中的Intent组件,用于接收系统全局Intent。在收到的ntent extra 数据后可以在变量中直接使用extra中的Key作为变量名,Value作为变量值。

任务

  1. 代码>>>JAVA函数
    代码编辑功能算是Tasker这款软件中最强大的地方。支持原生的JAVA函数、Android API,JS脚本以及shell命令。由于其中涉及的知识已经超出本文介绍的范畴,故只介绍下使用注意事项:
    ①. 调用函数的时候需要现在类或对象中选择一个类,并在功能中调用类或对象的成员函数。有参数的函数需要在调用函数之前创建传参的对象。
    ②. 返回值的名称不能与Tasker内部变量冲突,建议返回值的名称以小写开头并用驼峰命名或下划线命名等方式加以区别。
    ③. Tasker中不用声明变量和实例化对象的类型,直接在返回值后传递即可。但需要调用构造函数的类需要先new后在返回值中使用成员函数。

举个栗子:Android API中新建文件的Java代码如下:
(为了更直观地与Tasker对比,没有采用链式调用的写法)

// 获取外置存储根目录
File rawPath = Environment.getExternalStorageDirectory();
// 把目录转换为String类型,因为 File() 方法的两个参数的类型为String
String filePath = rawPath.toString();
String fileName = "FileName";
// 新建一个文件
File rawFile = new File(filePath, fileName);
// 用文件输出流把文件写入目录
OutputStream newFile = new FileOutputStream(rawFile);

在Tasker中对应的操作如下(点击查看原图):

图 3-1 整体任务流程示意图图 3-2 第三步任务示意图

由上图对比可见,在Java代码中变量名对应图 3-1 中的等号左边和图 3-2 中的返回值。而代码中的变量类型则在选择图 3-2 中参数类型时由Tasker自动判断。

  1. 代码>>>运行shell命令
    安卓自动化APP——Macrodroid这篇文章中的第9条——shell命令,使用方法相同。
  2. 变量
    全局变量必须以 %+大写英文字母开头且大于三个字符,局部变量全为小写,并且要与Tasker内部变量区分开,Tasker内部变量参考软件内操作指南。Tasker中有数组变量,即在%变量名后加数字,数组序列从1开始。如%VAR1%VAR2等。
  3. 场景
    场景用于创界自定义UI界面,并在界面中调用相关任务。需要注意的是显示场景为图层的时候一定要注意注意勾选显示退出按钮,不然UI界面会遮挡整个手机屏幕只能重启手机才能退出。
  4. 插件
    插件功能可以挂载第三方Tasker相关插件。可以在Google Play商店中下载安装。或直接在Tasker官网安装使用。插件中的变量规则可以与Tasker中的变量共用。需要注意的是:如果需要后台使用插件的功能,需要同时打开插件的自动唤醒、锁定近期任务、关闭电池优化、允许权限等相关操作,否则无法正常使用。
  5. 显示>>>DPI密度调整
    调整屏幕分辨率。新手谨慎操作,错误的DPI可能会导致手机无法开机。

场景

场景用于创建自定义UI,可以在UI中调用任务。场景编辑器有两种模式——界面编辑模式和元素编辑模式。新建好场景后要调出场景请在任务编辑中新建一个任务,选择场景>>>显示场景,关闭场景请用隐藏场景(请注意区分删除场景哦,删除场景会直接删除刚创建好的场景界面哦!)

图4 场景编辑示意图

  • 填写完场景名称后立即进入的是 场景编辑模式,用来编辑场景的类型、显示方向、分辨率和背景色等。屏幕中央的矩形为图形UI的大小,拖动矩形四角以改变大小。点击右上角的 图标编辑属性。点击左下角的图标撤销上一步,点击🔍图标切换到元素编辑模式
  • 进入元素编辑模式后,点击🤚更改触摸模式,以便在手指触摸不到的地方操作。点击+图标或长按空白区域以添加元素,点击AZ图标选择场景元素。长按元素呼出元素菜单。
  • 元素响应的动作有按下、长按、改变、滑动等。不同元素拥有的响应动作不同。在动作中可添加任务,原理和正常任务相同。
  • 元素编辑模式中有图层概念,即元素深度。如果元素不能点击,请检查元素是否被遮挡,如果遮挡,将上层元素深度数值减小即可。

备份功能

  • Tasker支持在线备份和本地备份,在线备份使用Google Drive,国内不好使用,可以用本地备份。备份在右上角依次点击 图标>>>数据>>>备份,然后选择备份目录后重命名(可选)并按返回键提示备份成功后即可完成备份。建议备份在存储根目录,不然卸载软件后可能会丢失备份。还原备份请选择存储中的.xml后缀文件后按返回键即可。请注意恢复备份会覆盖之前所有任务!若要恢复部分请多选任务后点击右上角导出按钮后选择作为XML保存到存储,或长按底部🏠按钮,然后点击添加+,这时会新建一个新项目,可以进行任务分类,长按项目进行导入导出。

写在最后

由于软件功能强大,操作步骤较多,限于篇幅,更多细节请参考Tasker官方英文手册。(只有英文版才有最全的说明哦,更新也是最频繁的)

如对官方手册中或本文中有什么不明白的操作或有什么需要我详细介绍的请留言或私信,我看到后都会一一回复。(请不要忘了查看回复内容哦,我时长在线)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐