目录
简介
Tasker是一款运行在Android系统上的具有强大自动化执行任务的辅助应用程序。
Tasker是一个让系统根据用户定制的”配置文件 Profiles“,在特定的”场景 Contexts“下,执行指定”任务 Tasks“的软件。
它还提供“可供点击 Clickable” 或 “定时任务” 的桌面 Timer 插件 Widget。
Tasker的自动化任务主要由【触发条件】和【执行任务】两部分组成。
触发器:程序、时间、日期、位置、硬件/软件状态、事件、快捷方式、小工具、计时器。
任务:循环、变量、操作。
其通过在配置文件中添加触发器,然后指定触发器要执行的任务。并且通过局部变量、全局变量传递各任务、场景之间的数据。如果需要条件限制可以在任务中配置 If 条件即可。
Tasker不需要root权限
Tasker支持多款三方插件,如AutoVoice、AutoInput 和 AutoCase
使用Tasker无需编程基础
术语解释
- 配置文件【Profiles】
tasker的核心,配置文件由背景[Contexts]和与其对应的任务[Tasks] 组成当背景[Contexts]的条件全都符合时,自动执行对应的任务[Tasks]
配置文件也可以理解为触发条件,有:事件(常用的):变量 - 变更媒体 - 音乐曲目变更文件 - 文件属性变动、被修改、被关闭、被删除、被打开、被移动日期/时间 -位置:1应用程序:需要获取选择的应用程序的所有权限时间:用来做定时任务某天:特定时间的定时任务状态:
- 背景【Contexts】
是”任务”(Tasks)执行的前提,只有但”背景”(Contexts)满足时,对应的”任务”(Tasks)才会执行
- “任务”(Tasks)
“任务”(Tasks)由”操作”(Actions)构成,”操作”(Actions)是Tasker里的最小动作,一个或多个”操作”(Actions)构成了一个”任务”(Tasks)
- “操作”(Actions)
“操作”(Actions)是Tasker里的最小动作,一个或多个”操作”(Actions)构成了一个”任务”(Tasks)
- 插件”(Widget)
Tasker提供了桌面插件,以便直接调用指定”任务”(Tasker)而无需满足特定的”背景”(Contexts)
扩展插件
- AutoVoic
使用自定义语音命令控制手机
- AutoInput
自动输入文本并获取其他应用信息
- AutoCast
完成控制Chromecast设备
tasker操作
【配置文件】
事件>>>传感器>>>手势
在名称中填入手势名称后,长按音量键开始记录手势。此事件利用手机的加速度传感器、陀螺仪传感器等,记录手机在空间中X、Y、 Z、三个轴的相对方向和位置,形成运动轨迹,当手机再次识别到类似的轨迹后触发动作。
事件 >>> 系统 >>> 收到的意图
此功能为Android系统组件中的Intent组件,用于接收系统全局Intent。在收到的ntent extra 数据后可以在变量中直接使用extra中的Key作为变量名,Value作为变量值。
【任务】
代码 >>> java函数
①. 调用函数的时候需要现在类或对象中选择一个类,并在功能中调用类或对象的成员函数。有参数的函数需要在调用函数之前创建传参的对象。
②. 返回值的名称不能与Tasker内部变量冲突,建议返回值的名称以小写开头并用驼峰命名或下划线命名等方式加以区别。
③. Tasker中不用声明变量和实例化对象的类型,直接在返回值后传递即可。但需要调用构造函数的类需要先new后在返回值中使用成员函数。
代码>>>运行shell命令
变量
全局变量必须以 %+大写英文字母开头且大于三个字符,局部变量全为小写,并且要与Tasker内部变量区分开,Tasker内部变量参考软件内操作指南。Tasker中有数组变量,即在%变量名后加数字,数组序列从1开始。如%VAR1、%VAR2等。
场景
场景用于创界自定义UI界面,并在界面中调用相关任务。需要注意的是显示场景为图层的时候一定要注意注意勾选显示退出按钮,不然UI界面会遮挡整个手机屏幕只能重启手机才能退出。
插件
插件功能可以挂载第三方Tasker相关插件。可以在Google Play商店中下载安装。或直接在Tasker官网安装使用。插件中的变量规则可以与Tasker中的变量共用。需要注意的是:如果需要后台使用插件的功能,需要同时打开插件的自动唤醒、锁定近期任务、关闭电池优化、允许权限等相关操作,否则无法正常使用。
显示 >>> DPI密度调整
调整屏幕分辨率。新手谨慎操作,错误的DPI可能会导致手机无法开机
使用流程
1、先在【配置文件】中创建一个触发条件,例如 :事件 - 电话 - 未接来电
2、创建好后会需要立即创建一个任务
因为配置后是需要执行任务的,不允许没有任务的事件在
3、【任务】中例如:媒体 - 拍照
这会在有未接来电的时候,自动打开照相机,按照设置的方法拍照
注意事项
1、多数操作需要tasker获取操作权限,这个需要注意
2、小米手机、坚果手机使用tasker可能会出现异常。华为手机使用效果比较好
3、虽然说tasker使用不需要root功能,但是设计底层的操作,也需要手机root,请谨慎使用
4、【任务】中有变更,需要返回任务栏点击 ✓确认,否则不生效
5、【任务】中可以同时添加多个任务,会按照顺序依次执行
6、如果有配置文件引用该任务,则该任务无法删除,需要在配置文件中取消任务连接才可以正常删除
7、【变量】例如获取未接来电的信息,则系统有给出的 %evtprm1
tasker内部定义了许多的变量,我们可以直接使用。
同时我们也可以自己设置变量,用来存储或者存储转换后的信息
变量的命名规则是:%变量名称,如%code,%CODE
注意:如果%后跟的是小写的字母,那么该变量只可以在该事件或者任务中使用。
如果%后跟的是大写的字母,那么该变量可以被认为是全局变量。
使用指南
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可能不包含完整的页面内容。在这种情况下,你可能需要使用更高级的方法,如自动化的网页浏览器工具,来获取完整的页面内容。
举例:
获取验证码并发送到服务器
前提
在服务器上部署了一个获取的jar包,jar包必须包含两个请求路径:
/toTasker → 是用来接收tasker发送的信息的,即tasker通过该路径发送验证码信息到服务器
/getCode → 另一个项目根据该路径获取解析好的4或6位验证码
(vCode是用来解析数据的,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;
}
操作
- 配置文件页面




- echo "%SMSRB"|grep -iE "码|碼|code"
输出%SMSRB(短信文本)变量的内容,然后使用grep搜索其中是否包含“码”、“碼”或“code”这些字串,并且搜索时不区分大小写(-iE)。如果找到匹配的字符串,grep命令会输出包含这些字符串的行。如果没有找到匹配的字符串,则不会输出任何内容。
- %MESSAGE_CODE
自定义,用来存储正确的短信文本内容
- %ERROR_CODE
自定义,用来存储错误的文本内容


- \d{4}|\d{6}
\d{4}|\d{6} 是一个正则表达式,用于匹配数字序列。下面是对这个正则表达式的解释:\d:表示匹配任意一个数字(0-9)。{4}:表示前面的模式(即 \d )重复4次。{6}:表示前面的模式(即 \d )重复6次。|:表示逻辑“或”,即匹配左边或者右边的模式。所以, \d{4}|\d{6} 这个正则表达式可以匹配任意一个由4个数字或者6个数字组成的序列

然后

转发短信到微信
我们还可以
- 运行百度地图、搞的地图时才打开GPS,其余时候不打开,防止各种莫名其妙的软件使用定位功能,省电,保护隐私
- 当有电话打进来时,将手机音量调大,防止漏接
- 打开微信和qq时,打开数据流量,保证主动发信息时有网络。关闭微信和qq时断开数据连接
- 到家时(依据定位系统)打开wifi
开发中
-
使用Tasker监控Gitee仓库变更
步骤1:设置Gitee Webhook
- Gitee账号进入目标仓库,在“管理”页面中,找到WebHooks,然后添加 Webhooks
- 添加后端服务的url,该url将被接收gitee发送的webhook数据,如https://xxxx/gitee/webhook
- 选择事件类型为:push,然后保存
步骤2:创建Java后端服务
- 在Spring Boot应用中,创建一个控制器来处理Webhook请求。
→Gitee WebhookPayLoad
import java.util.List;
// 用于映射Gitee Webhook推送的JSON数据结构的类 GiteeWebhookPayload
public class GiteeWebhookPayload {
private String head_commit;
private String before;
private String after;
private String ref;
private String master_branch;
private String repository;
private String commits_count;
private List<Commit> commits;
private Pusher pusher;
private Repository repository_info;
private String total_commits_count;
private String event_type_name;
// getters and setters...
public static class Commit {
private String id;
private String message;
private String timestamp;
private String url;
private String author_name;
private String author_email;
// getters and setters...
}
public static class Pusher {
private String id;
private String username;
private String email;
private String name;
// getters and setters...
}
public static class Repository {
private String id;
private String name;
private String description;
private String homepage;
private String git_http_url;
private String git_ssh_url;
private String url;
// getters and setters...
}
}
// Controller层的内容
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.http.ResponseEntity;
@RestController
public class GiteeWebhookController {
@PostMapping("/gitee/webhook")
public ResponseEntity<String> handleGiteeWebhook(@RequestBody GiteeWebhookPayload payload) {
// 处理Webhook数据的逻辑
System.out.println("Received Gitee webhook with ref: " + payload.getRef());
// 这里可以添加代码来处理payload,例如触发CI/CD流程
// 返回响应
return ResponseEntity.ok("Webhook received successfully");
}
}
步骤3:添加HTTP请求动作
- 在Tasker中,选择“状态”→“以太网连接”
- 设置请求方法为“GET”或“POST”,并输入后端服务的URL。
- 如果需要,添加任何必要的请求头或请求体。
注意事项
- 确保你的Java后端服务具有处理HTTPS请求的能力,因为Gitee可能使用HTTPS来发送Webhook。
- 如果你的Java后端服务需要部署在外部服务器上,请确保服务器的安全设置允许来自Tasker的请求。
- 由于Tasker运行在Android设备上,确保你的设备有稳定的网络连接,以便能够发送HTTP请求。
通过上述步骤,你可以使用Tasker结合Java后端服务来监控Gitee仓库的变更。这种方法结合了Tasker的定时任务功能和Java的强大后端处理能力,实现了自动化监控Gitee仓库变更的需求。
-
使用Tasker解析json