Triggers 触发器模块
触发器模块用于设置工作流的启动条件,当指定条件满足时自动执行工作流。
手动触发 (ManualTrigger)
手动触发工作流执行,需要用户主动启动。
使用方式: 在工作流编辑器中添加此模块后,可以通过悬浮窗或快捷方式手动启动。
定时触发 (TimeTrigger)
在指定的时间和日期触发工作流,类似闹钟。
输入参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 触发时间 | 时间 | "09:00" | 24 小时制时间,格式 HH:mm |
| 重复日期 | 列表 | 全部日期 | 哪些天重复触发 |
日期选项:
- 每天
- 仅一次(不重复)
- 工作日(周一至周五)
- 自定义选择日期
输出参数
无(触发器模块本身不产生输出)
使用示例
# 每天早上 7:00 执行的起床提醒工作流
1. 定时触发
时间: 07:00
日期: 每天
2. WakeScreen
3. Toast "早上好!开始新的一天"
4. 调用外部应用 com.android.calendar
# 工作日早上 9:00 执行的签到提醒
1. 定时触发
时间: 09:00
日期: 工作日
2. Toast "该签到了"
3. 调用外部应用 com.example.checkin
通知触发 (NotificationTrigger)
当收到指定条件的通知时触发工作流。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 应用包名 | 文本 | 监听的应用(留空表示所有应用) |
| 通知标题 | 文本 | 匹配的通知标题 |
| 通知内容 | 文本 | 匹配的通知内容 |
匹配模式
- 精确匹配 - 通知内容完全等于指定文本
- 包含 - 通知内容包含指定文本
输出参数
| 参数 | 类型 | 说明 |
|---|---|---|
| notification_title | 文本 | 通知标题 |
| notification_text | 文本 | 通知内容 |
| from_app | 文本 | 来源应用包名 |
使用示例
# 收到微信消息时自动回复
1. 通知触发
应用包名: com.tencent.mm
通知内容: 收到一条新消息
2. 设置剪贴板 "正在忙,稍后回复"
3. 调用外部应用 Intent.ACTION_SENDTO
WiFi 触发 (WifiTrigger)
当 WiFi 连接状态变化时触发。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 触发条件 | 枚举 | 已连接 / 已断开 / 名称变化 |
| 网络名称 (SSID) | 文本 | 指定 WiFi 名称 |
输出参数
| 参数 | 类型 | 说明 |
|---|---|---|
| ssid | 文本 | 当前连接的 WiFi 名称 |
| bssid | 文本 | 接入点地址 |
| connected | 布尔值 | 是否已连接 |
使用示例
# 连接到公司 WiFi 后自动打开工作相关应用
1. WiFi 触发
条件: 已连接
网络名称: COMPANY_OFFICE
2. 调用外部应用 com.example.work
蓝牙触发 (BluetoothTrigger)
当蓝牙连接状态变化时触发。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 触发条件 | 枚举 | 已连接 / 已断开 |
| 设备名称 | 文本(可选) | 指定蓝牙设备名称 |
输出参数
| 参数 | 类型 | 说明 |
|---|---|---|
| device_name | 文本 | 连接的设备名称 |
| device_address | 文本 | 设备 MAC 地址 |
按键触发 (KeyEventTrigger)
当按下指定按键时触发。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 按键类型 | 枚举 | 音量键 / 电源键 / 自定义 |
使用场景
- 快捷键启动自动化
- 音量键快速控制
UI 元素触发 (ElementTrigger)
当指定 UI 元素出现在屏幕上时触发。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 选择器 | 文本 | UI 元素选择器 |
| 检测模式 | 枚举 | 出现时 / 消失时 |
使用示例
# 当广告弹窗出现时自动关闭
1. UI元素触发
选择器: @TextView[text='广告']
2. 如果 ${selector.found} 为真
3. 按键操作 BACK
4. 结束如果
位置触发 (LocationTrigger)
当设备位置变化时触发。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 触发条件 | 枚举 | 进入区域 / 离开区域 |
| 位置坐标 | 坐标 | 目标位置 |
| 半径 | 数字 | 触发半径(米) |
权限要求
- 位置权限
- 地理位置(精确/模糊)
电池触发 (BatteryTrigger)
当电池状态变化时触发。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 触发条件 | 枚举 | 电量低于 / 电量高于 / 充电状态变化 |
| 电量阈值 | 数字 | 百分比阈值 |
输出参数
| 参数 | 类型 | 说明 |
|---|---|---|
| level | 数字 | 当前电量百分比 |
| is_charging | 布尔值 | 是否正在充电 |
GKD 触发 (GKDTrigger)
配合 GKD 自动化工具使用的触发器。
输入参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 规则 ID | 文本 | GKD 规则标识 |
| 触发模式 | 枚举 | 匹配时 / 完成时 |
触发器使用注意事项
1. 权限要求
大部分触发器需要相应权限:
| 触发器 | 所需权限 |
|---|---|
| 定时触发 | 精确闹钟权限 |
| 通知触发 | 通知监听权限 |
| 位置触发 | 位置权限 |
| WiFi 触发 | 位置权限(Android 6.0+) |
2. 后台运行
触发器需要在后台运行才能正常工作:
- 确保 vFlow 已授予必要的权限
- 不要结束 vFlow 进程
- 部分设备需要设置自启动白名单
3. 触发条件组合
可以组合多个触发器:
# 在特定时间和条件下执行
1. 定时触发 08:00
2. WiFi 触发 已连接 OFFICE_WIFI
# 满足所有条件后执行
3. 执行工作流操作
4. 触发延迟
由于系统限制,触发器可能存在一定延迟:
- 定时触发:通常在指定时间后几秒内
- 通知触发:通常在收到通知后 1-3 秒内
- 位置触发:取决于位置更新频率
完整工作流示例
智能家居控制
工作流: 智能家居控制
1. 手动触发 # 主要触发方式
2. 或者 定时触发 18:00 # 下午 6 点自动执行
3. 或者 WiFi 触发 已连接 HOME_WIFI
# 实际执行的操作
4. WakeScreen
5. 调用外部应用 com.xiaomi.smarthome
6. Toast "正在打开智能设备"
自动回复工作流
工作流: 自动回复
1. 通知触发
应用包名: com.tencent.mm
2. 如果 ${notification_text} 包含 "在吗"
3. 设置剪贴板 "我目前在忙,稍后回复你"
4. 调用外部应用 Intent.ACTION_SENDTO
5. 结束如果