tasker 中文文档 下载 App

Tasker 工作时自动静音 多条件精准触发 离开自动恢复

场景描述

需求:到公司时手机自动静音,离开时自动恢复。不只是简单的"在公司 Wi-Fi 就静音"——还要考虑:

基础版实现

Profile 设计

Profile:工作时段自动静音
  Context 1:State → Wi-Fi Connected → SSID 包含 "公司"(或直接指定公司 Wi-Fi 名)
  AND
  Context 2:Time → 09:00 - 18:00
  AND
  Context 3:Day → 周一 / 周二 / 周三 / 周四 / 周五

Enter Task:
  1. Ringer Volume → 0%(静音来电)
  2. Do Not Disturb → 仅闹钟(允许闹钟响,屏蔽其他通知)
  3. Vibration → Off(同时关闭震动)
  4. Notify(常驻)→ "工作模式开启,18:00 后恢复"

Exit Task:
  1. Ringer Volume → 恢复(可以设固定值或用变量保存之前的音量)
  2. Do Not Disturb → Off
  3. Vibration → On
  4. Notify → "工作模式已关闭"

关键设计点

为什么用 Wi-Fi 而不是 GPS:

Time + Day 的组合:

Exit Task 的自动恢复:

进阶版:午休时段放开

需求:午休(12:00-13:30)可以短暂恢复声音。

方案:变量叠加第三个 Context

Profile:工作时段自动静音
  Context 1:State → Wi-Fi Connected → 公司 Wi-Fi
  AND
  Context 2:Day → 周一至周五
  AND
  Context 3:
    Time → 09:00-12:00
    OR
    Time → 13:30-18:00

# 午休 12:00-13:30 不触发 → Profile 自然退出 → Exit Task 恢复音量

然后再建一个 Profile 专门处理午休恢复:

Profile:午休恢复声音
  Context:
    State → Wi-Fi Connected → 公司 Wi-Fi
    AND
    Day → 周一至周五
    AND
    Time → 12:00-13:30

Enter Task:
  1. Ringer Volume → 40%(适度放开,但不要太大影响同事)
  2. Do Not Disturb → Off
  3. Notify → "午休模式"

两个 Profile 互相配合:一个在非午休时段静音,一个在午休时段放开。

进阶版:会议室深度静音

需求:如果在公司且日历里有正在进行的会议 → 进入更深层的静音模式(包括震动、通知、媒体全部关闭)。

实现

Profile:会议中深度静音
  Context:
    Calendar → 正在进行中的事件(需连接 Google 日历 / Exchange)
    AND
    State → Wi-Fi Connected → 公司 Wi-Fi

Enter Task:
  1. Ringer Volume → 0%
  2. Media Volume → 0%
  3. Do Not Disturb → 完全静默
  4. Vibration → Off
  5. Torch → Off
  6. Notify(常驻)→ "会议中,深度静音模式"
  7. Say → "已进入会议静音模式"(如果有蓝牙耳机)

Exit Task:
  1. Ringer Volume → 恢复到正常工作模式的值
  2. Media Volume → 恢复
  3. Do Not Disturb → 仅闹钟
  4. Vibration → On
  5. Notify → "会议结束"

注意这个 Profile 的优先级——它应该覆盖"工作时段自动静音"——因为进入会议 Profile 时,工作时段的静音可能还在生效。可以用"重叠 Profile 叠加"的方式,让会议 Profile 的设置更彻底。

进阶版:保存与恢复音量

Exit Task 里"恢复音量"是个技术问题——之前的音量是多少?如果在进入静音前你手动调低了音量,Exit Task 恢复到固定值反而不对。

用变量保存音量

在工作时段 Profile 的 Enter Task 最开头加:

1. Variable Set %OldRing, %VOLR    ← 保存当前铃声音量
2. Variable Set %OldMedia, %VOLM   ← 保存当前媒体音量
3. Ringer Volume → 0%
4. Do Not Disturb → ...(后面正常的静音操作)

Exit Task:

1. Ringer Volume → %OldRing        ← 恢复到 Enter 之前的值
2. Media Volume → %OldMedia
3. Do Not Disturb → Off

这样无论之前是什么音量,都能精确恢复。

避免误触的额外保险

保险一:手动覆盖开关

创建一个全局变量 %ManualOverride:

默认值 = 0(正常自动模式)
当你临时需要在公司里开声音时 → 桌面 Shortcut → 设置 %ManualOverride = 1
工作时段 Profile 的 Context 叠加:
  AND
  State → Variable Value → %ManualOverride = 0

这样按一下 Shortcut 就能临时禁用自动静音,再按一下恢复自动。

保险二:会议日历检测

前面会议室静音 Profile 已经覆盖了"正在开会时应该更深静音"——这是工作静音的正确增强,不是保险。

保险三:自定义例外地点

如果你有时在公司附近(咖啡馆、便利店)但不想静音,可以叠加位置 Context:

Profile 的 Context 添加:
  AND
  NOT State → Location → 公司(半径 200 米内)

完整的工作时段自动化

把上面所有组件拼起来:

Profile作用
工作时段自动静音工作日 9-18 点 + 公司 Wi-Fi → 正常静音
午休恢复工作日 12-13:30 + 公司 Wi-Fi → 适度放开
会议深度静音有日历会议 + 公司 Wi-Fi → 完全静音
手动覆盖开关Shortcut 触发变量 → 临时禁用所有静音 Profile
每日自动备份工作结束 18:30 → 自动备份 Tasker 配置

这个组合覆盖了"正常工作 → 午休 → 开会 → 临时例外 → 数据安全"的完整链条。