




















我派的用户应该非常熟悉 RescueTime这个App,它是一个用于记录和跟踪多平台多设备使用情况的工具。电脑端和Android端的RescueTime你可以获得每一个 App的详细使用时长。但由于 iOS的安全机制限制, RescueTime在 iOS上基本上是一个「战五渣」:它只能记录手机的总使用时间,而不能详细到具体的App。
iOS自带的 ScreenTime可以满足这一要求,但无法导出数据,当然也无法与 RescueTime集成。这篇文章秉承着「授人以鱼不如授人以渔」的原则,详细讲述了我的解决方案。时间匆忙的小伙伴们可以直接从这里下载,并直接跳到「App打开/关闭时自动运行捷径的自动化设置」章节。
RescueTime有一项特性,称为离线时间(Offline Time)。

这一功能可以让你记录下离开电脑时所做的事情,例如吃饭、运动、上下班等。此功能是你可以通过 RescueTime API写入的唯一数据。好消息是离线时间记录和RescueTime「原生」的App记录一样,也可以为其设置分类、标注其属于Productive或者Distracting。这就是说,如果我们能通过Offline Time的API从 iOS设备上写入「微信10:30 AM-11:15 AM」,我们就能得到和追踪 App使用时间一样的效果。
在 iOS设备上调用 RescueTime API是非常简单的,捷径里本身就自带这个功能:
接下来的问题是,我们如何记录App的使用时间。为了获得使用时间,必须记录你打开这个 App以及关闭时的时间。
此问题可扩展为:
事实上, 第一点已经可以通过iOS的捷径自动化实现了。
第二点的困难之处在于,我们需要一种方法来在iOS设备上储存这个App打开的时间。这样在 App关闭然后我们需要 call RescueTime API的时候我们可以拿到这个变量。我以前也尝试过一些「曲线救国」的方法,比如写入备忘录或者提醒事项等灯,都不太稳定,也不容易使用。直到有一天我发现了这样一个叫 Data Jar的 App:
简而言之,这就是一个支持捷径的 App,它可以让你轻松地写入和读取任何键值映射(比如JSON格式)。
类似于记录 App何时打开,我们需要:
此捷径非常简单,只有一个步骤,即在 Data Jar中写入当前时间。请注意作者将键值设置成 RescueTime.Shortcut Input,这样我们就可以为不同的App记录自己的数据,避免它们彼此冲突。例如,你可以使用 RescueTime.微信和 RescueTime.少数派。Shortcut Input是运行此捷径所需的变量,我们将在下面设置自动化时使用它。
这一则自动化很好理解:当微信打开时,自动执行上述的捷径指令。请注意,我们关闭了「运行前询问」选项,以便这一自动化能够在背景中自动运行。
我们点开这则自动化的「Do」:
这里可以看到,我们设置了一个文本变量,它的值就是「WeChat」。然后我们将其作为捷径指令的输入变量,即前面提到的 Shortcut Input。
这个捷径稍微有点复杂,我们拆解看看:
App打开时的设置基本一致,不再赘述。

上述设置在实际使用过程中,笔者发现了一些小问题,以下加以说明。
最大的问题是捷径运行时会弹出一个通知。攒多了以后你的锁屏就被其攻占了:
关闭通知的方法竟然是个「偏方」:
>,下面是见证奇迹的时刻!此时,在屏幕上方的 This Week中点击<去 Last Week,然后再点>返回 This Week,您就会看到「捷径」的右边神奇地出现了>的标识!该方法还有一个缺点,即您必须为每一个App都设置一套自动化。这显然是要累死个人。一个解决方案是,我们就可以把一些同类别的App合并到一起统一记录。例如爱优腾、B站、YouTube、Apple TV都可以被记录为 Watch Video。在自动化设置里可以选择多个App:
虽然笔者用这套系统基本满足了日常的记录需求,但是现阶段仍有一些缺陷:
iOS会不会哪一天开放App对Screen Time数据的访问权限?笔者认为像Apple这样注重隐私的公司,短时间之内可能不会。笔者也非常希望被打脸,这样RescueTime就可以原生地支持App使用时间的记录了。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。