文章目录
1.简介1.1 Tasker功能1.2 Tasker组成部分1.3 相关补充
2.术语解读2.1 配置文件【Profiles】2.2 背景【Contexts】2.3 “任务”(Tasks)2.4 “操作”(Actions)2.5 插件”(Widget)
3.Tasker操作3.1【配置文件】3.2【任务】
4.注意事项5.使用指南7.使用举例:获取验证码并发送到服务器7.1 前提7.2 操作7.2.1【获取验证码】7.2.2【匹配验证码】7.2.3【发送验证码】
1.简介
Tasker是一款运行在Android系统上的具有强大自动化执行任务的辅助应用程序。
1.1 Tasker功能
Tasker是一个让系统根据用户定制的”配置文件 Profiles“,在特定的”场景 Contexts“下,执行指定”任务 Tasks“的软件。 它还提供“可供点击 Clickable” 或 “定时任务” 的桌面 Timer 插件 Widget
1.2 Tasker组成部分
Tasker的自动化任务主要由【触发条件】和【执行任务】两部分组成 触发器:程序、时间、日期、位置、硬件/软件状态、事件、快捷方式、小工具、计时器 任务:循环、变量、操作 其通过在配置文件中添加触发器,然后指定触发器要执行的任务。并且通过局部变量、全局变量传递各任务、场景之间的数据。如果需要条件限制可以在任务中配置 If 条件即可。
1.3 相关补充
Tasker不需要root权限 Tasker支持多款三方插件,如AutoVoice、AutoInput 和 AutoCase 使用Tasker无需编程基础
2.术语解读
2.1 配置文件【Profiles】
tasker的核心,配置文件由背景[Contexts]和与其对应的 任务[Tasks] 组成 当背景[Contexts]的条件全都符合时,自动执行对应的任务[Tasks]
tasker的核心,配置文件由背景[Contexts]和与其对应的 任务[Tasks] 组成 当背景[Contexts]的条件全都符合时,自动执行对应的任务[Tasks]
配置文件也可以理解为触发条件,有:
1)事件(常用的): 动态触发的条件,通常由系统或应用的动作引发:
变量 - 变量值变更媒体 - 音乐曲目变更、播放状态改变文件 - 文件属性变动、被修改、被关闭、被删除、被打开、被移动日期/时间 - 特定时间点或间隔触发(如整点、日出日落)
2)位置: 基于地理围栏的触发条件:
进入/离开特定 GPS 坐标或区域(需位置权限)
结合 Wi-Fi 或基站数据降低功耗
3)应用程序:与应用相关的触发条件:
需要获取选择的应用程序的所有权限应用启动/退出
应用处于前台/后台(需无障碍权限或使用日志监控) 4)时间:用来做定时任务
单次或循环的定时触发(如每天 7:00)支持日出/日落等自然时间条件
5) 某天:特定日期的触发条件:
节假日、星期几(如每周五下班时)
结合日历事件(如会议提醒) 6)状态:持续性的系统或设备状态:
设备状态 - 充电中、耳机插入、屏幕解锁
网络状态 - Wi-Fi 连接/断开、移动数据开关
传感器状态 - 环境光强度、设备朝向
2.2 背景【Contexts】
是”任务”(Tasks)执行的前提,只有但”背景”(Contexts)满足时,对应的”任务”(Tasks)才会执行
2.3 “任务”(Tasks)
“任务”(Tasks)由”操作”(Actions)构成,”操作”(Actions)是Tasker里的最小动作,一个或多个”操作”(Actions)构成了一个”任务”(Tasks)
2.4 “操作”(Actions)
“操作”(Actions)是Tasker里的最小动作,一个或多个”操作”(Actions)构成了一个”任务”(Tasks)
2.5 插件”(Widget)
Tasker提供了桌面插件,以便直接调用指定”任务”(Tasker)而无需满足特定的”背景”(Contexts)
扩展插件
AutoVoic 使用自定义语音命令控制手机AutoInput 自动输入文本并获取其他应用信息AutoCast 完成控制Chromecast设备
3.Tasker操作
3.1【配置文件】
事件>>>传感器>>>手势
在名称中填入手势名称后,长按音量键开始记录手势。此事件利用手机的加速度传感器、陀螺仪传感器等,记录手机在空间中X、Y、 Z、三个轴的相对方向和位置,形成运动轨迹,当手机再次识别到类似的轨迹后触发动作。
事件 >>> 系统 >>> 收到的意图
此功能为Android系统组件中的Intent组件,用于接收系统全局Intent。在收到的ntent extra 数据后可以在变量中直接使用extra中的Key作为变量名,Value作为变量值。
3.2【任务】
代码 >>> java函数
①. 调用函数的时候需要现在类或对象中选择一个类,并在功能中调用类或对象的成员函数。有参数的函数需要在调用函数之前创建传参的对象。 ②. 返回值的名称不能与Tasker内部变量冲突,建议返回值的名称以小写开头并用驼峰命名或下划线命名等方式加以区别。 ③.Tasker中不用声明变量和实例化对象的类型,直接在返回值后传递即可。但需要调用构造函数的类需要先new后在返回值中使用成员函数。
代码>>>运行shell命令
1.变量 全局变量必须以 %+大写英文字母开头且大于三个字符,局部变量全为小写,并且要与Tasker内部变量区分开,Tasker内部变量参考软件内操作指南。Tasker中有数组变量,即在%变量名后加数字,数组序列从1开始。如%VAR1、%VAR2等。
2.场景 场景用于创界自定义UI界面,并在界面中调用相关任务。需要注意的是显示场景为图层的时候一定要注意注意勾选显示退出按钮,不然UI界面会遮挡整个手机屏幕只能重启手机才能退出。
3.插件 插件功能可以挂载第三方Tasker相关插件。可以在Google Play商店中下载安装。或直接在Tasker官网安装使用。插件中的变量规则可以与Tasker中的变量共用。需要注意的是:如果需要后台使用插件的功能,需要同时打开插件的自动唤醒、锁定近期任务、关闭电池优化、允许权限等相关操作,否则无法正常使用。
显示 >>> DPI密度调整
调整屏幕分辨率。新手谨慎操作,错误的DPI可能会导致手机无法开机
4.注意事项
1、多数操作需要tasker获取操作权限,这个需要注意 2、小米手机、坚果手机使用tasker可能会出现异常。华为手机使用效果比较好 3、虽然说tasker使用不需要root功能,但是设计底层的操作,也需要手机root,请谨慎使用 4、【任务】中有变更,需要返回任务栏点击 ✓确认,否则不生效 5、【任务】中可以同时添加多个任务,会按照顺序依次执行 6、如果有配置文件引用该任务,则该任务无法删除,需要在配置文件中取消任务连接才可以正常删除 7、【变量】例如获取未接来电的信息,则系统有给出的 %evtprm1 tasker内部定义了许多的变量,我们可以直接使用。 同时我们也可以自己设置变量,用来存储或者存储转换后的信息
变量的命名规则是:%变量名称,如%code,%CODE 注意:如果%后跟的是小写的字母,那么该变量只可以在该事件或者任务中使用。 如果%后跟的是大写的字母,那么该变量可以被认为是全局变量。
5.使用指南
1、定时任务类执行的时候,配置文件选择“时间” 2、到某个地方,例如临近家中,自动连接wifi,配置文件选择“位置” 3、检测某个状态时,配置文件选择“状态” 4、常用的各种电话、短信、传感器(如手机晃动)等都在配置文件的“事件”中,这也是用的最多的一个 5、配置HTTP请求:
Method:选择“GET”。URL:输入https://www.baidu.com/s?wd=天气SSL:如果网址使用HTTPS,确保SSL选项被勾选。Output:选择将输出保存到变量,例如%weatherResult
使用http请求注意事项:
确保设备已经开启了允许Tasker发送网络请求的权限。如果设备有VPN或代理设置,大概率会阻止Tasker的网络请求。由于百度的搜索结果页面可能包含JavaScript渲染的内容,直接通过HTTP请求获取的HTML可能不包含完整的页面内容。在这种情况下,你可能需要使用更高级的方法,如自动化的网页浏览器工具,来获取完整的页面内容。
7.使用举例:获取验证码并发送到服务器
7.1 前提
在服务器上部署了一个获取的jar包,jar包必须包含两个请求路径: /toTasker → 是用来接收tasker发送的信息的,即tasker通过该路径发送验证码信息到服务器 /getCode → 另一个项目根据该路径获取解析好的4或6位验证码 (getCode是用来解析数据的,code即返回的4位或者6位的验证码)
// code是一个静态变量
@RequestMapping("/toTasker")
@ResponseBody
public String toTasker(String tasker) {
code = vCode.vcode(tasker);
System.out.println(code);
return "success";
}
// 如果需要获取这个code,就访问/getCode地址就可以了
@RequestMapping("/getCode")
@ResponseBody
public String getCode() {
return code;
}
7.2 操作
配置文件页面
7.2.1【获取验证码】
echo “%SMSRB”|grep -iE “码|碼|code” 输出%SMSRB(短信文本)变量的内容,然后使用grep搜索其中是否包含“码”、“碼”或“code”这些字串,并且搜索时不区分大小写(-iE)。如果找到匹配的字符串,grep命令会输出包含这些字符串的行。如果没有找到匹配的字符串,则不会输出任何内容。%MESSAGE_CODE 自定义,用来存储正确的短信文本内容%ERROR_CODE 自定义,用来存储错误的文本内容
7.2.2【匹配验证码】
\d{4}|\d{6}
\d{4}|\d{6} 是一个正则表达式,用于匹配数字序列。下面是对这个正则表达式的解释:
\d:表示匹配任意一个数字(0-9)。{4}:表示前面的模式(即 \d)重复4次。{6}:表示前面的模式(即 \d)重复6次。|:表示逻辑“或”,即匹配左边或者右边的模式。 所以,\d{4}|\d{6} 这个正则表达式可以匹配任意一个由4个数字或者6个数字组成的序列
7.2.3【发送验证码】
新建 – 网络 – httpRequest 输入的是jar包中发送到的地址,我这里即我服务器的8080端口下的路径
补充:转发短信到微信 https://taskerm.com/2020/03/05/forwarded-sms-to-wechat-by-tasker
我们还可以
运行百度地图、搞的地图时才打开GPS,其余时候不打开,防止各种莫名其妙的软件使用定位功能,省电,保护隐私当有电话打进来时,将手机音量调大,防止漏接打开微信和qq时,打开数据流量,保证主动发信息时有网络。关闭微信和qq时断开数据连接到家时(依据定位系统)打开wifi
参考教程:https://taskerm.com/categories/%E6%95%99%E7%A8%8B/