用了这么多年 iPhone,快捷指令算是我手机里打开频率最高的应用之一。前两天朋友看到我桌面上有个“静音切换”的图标,点一下手机就变静音,再点一下又恢复响铃,他觉得很神奇,问我是不是越狱了或者装了啥第三方插件。其实根本没那回事,就是 iOS 自带快捷指令配合一个很容易被忽略的小技巧实现的。
这个需求听起来特别简单,但实际操作时你会发现一个坑:快捷指令里虽然有“设定静音模式”这个动作,却没有“切换静音”这种一键反转的选项。也就是说,你只能手动告诉它“打开静音”或“关闭静音”,没法让它自己判断当前是啥状态然后反过来。所以这次分享的核心,就是怎么用“状态存储 + 条件判断”的思路,在快捷指令里实现真正的“一键静音 / 恢复”。
这篇文章适合所有用 iPhone 的人,哪怕你完全没碰过快捷指令,只要照着步骤一步步点,十分钟之内就能搞定。如果你已经在玩快捷指令,那这篇的重点就在于“为什么常规方案做不到”以及“如何用文件读写规避限制”,这个思路后面做别的自动化也能用得上。
1. 核心思路拆解:为什么快捷指令不能直接“切换”
先说说这个坑的根源。iOS 的快捷指令引擎给我们提供了一系列系统级操作,比如打开 App、发送信息、控制播放、设置闹钟等。但“静音”这个动作在设计上只提供了单向设定能力:你把“设定静音模式”拖进去,它只能指定为“打开”或“关闭”,并且执行一次就结束了。
这在自动化场景里很尴尬。假设你做一个“下班回家”的自动化,想让它检查一下手机当前是不是静音、如果是就恢复响铃,它做不到“检查当前状态”这个动作。快捷指令没有任何“读取当前静音状态”的 API,它只管“设置”,不管“查询”。这就像你手里只有一个开关,但没有办法知道这个开关现在是开还是关,只能不停去拨它。
既然系统不给查询能力,那我们只好自己记住状态。方法很朴素:把当前状态写到一个文件里,下次执行时先读文件,根据读到的内容判断该执行“静音”还是“恢复”,执行完再把新状态写回文件。这就相当于我们自己给快捷指令加了一个“记忆”能力,让它记住了上一次干了啥。
用文件存状态有几个好处:第一是不需要额外安装任何东西,iOS 原生文件 App 就能搞定;第二是可以跨设备同步,只要你开了 iCloud Drive,iPhone 上存的文件 iPad 上也能读到;第三是文件内容肉眼可见,出问题了直接用文本编辑就能排查。所以我建议新手优先用这个方案,而不是去折腾数据元组或者复杂变量。
理解了这点,后面所有步骤都顺理成章了:读状态 → 判断状态 → 执行对应动作 → 写回新状态。就这么四步,一个完整的“切换”逻辑就闭环了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 准备工作与状态文件规划
动手之前,先把环境和文件结构规划好,不然做到一半容易乱。
2.1 确认系统版本与快捷指令入口
这个方案要求 iOS 13 及以上版本,因为“设定静音模式”这个动作是 iOS 13 才加入快捷指令的。如果你还在用旧系统,建议先升级系统再折腾。查看方式:设置 → 通用 → 关于本机,看“系统版本”那一栏就行。
确认版本没问题后,打开快捷指令 App。如果桌面上找不到,可以下拉 Spotlight 搜索“快捷指令”。我第一次用的时候找了半天,因为它英文名叫 Shortcuts,中文系统里有时候会显示成“快捷指令”,有时候显示成“捷径”,其实是一个东西。
进入快捷指令首页后,你会看到“我的快捷指令”列表和右下角的“+”号按钮。点那个“+”号,再点“新建快捷指令”,就可以开始创建了。顺便说一下,新版本的快捷指令可能默认进入一个“App 专用快捷指令”的界面,你只要点左上角“关闭”,回到主列表再点“+”就行。
2.2 规划状态文件存储位置
状态文件我建议放在 iCloud Drive 的“快捷指令”文件夹里,也就是默认的 Shortcuts 目录。这样做的原因是,快捷指令的“获取文件”动作默认就能访问到这个目录,不需要你去手动翻路径,也不容易因为权限问题读取失败。
具体操作是:打开文件 App,点击“浏览
