惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园_首页
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
美团技术团队
IT之家
IT之家
罗磊的独立博客
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
月光博客
月光博客
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
博客园 - 叶小钗
M
MIT News - Artificial intelligence
B
Blog RSS Feed
有赞技术团队
有赞技术团队
Y
Y Combinator Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
从通知实现钱迹 Tasker 自动化记账 - 少数派
2020-07-07 · via 少数派

Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


继上次 通过 Tasker 和通知实现机器人 之后,决定利用 Tasker 做一些更有效率的事情、解决实际使用手机中的一些痛点。

思来想去,我有一个经常重复的操作是每次支付完都会使用钱迹进行记账,具体步骤无非是「回到桌面 > 打开钱迹/钱迹微件 > 输入金额 > 选择分类 > 记账完成」。

可是我观察到几乎每次支付之后,支付宝或其他 App 都会生成一个支付成功或者订单生成的通知。那么利用这个通知事件,自动打开钱迹或者其他记账应用来记账是一个很直接和容易实现的想法。另外钱迹刚好实现了 Deeplink(深度链接)的接口12,能够比较方便地进行自动化记账的操作。

这里把通知分为两类,其中类似支付宝比较良心地在通知文本里面提供了金额,这样我们就可以把通过正则匹配出来,直接通过钱迹的接口,一般来说只需要选择分类再点击就可以记账了;如果没有提供金额的,那么就直接打开记账页面进行手动记账。

另外本文不会像上次一样需要较多的插件和第三方应用来实现效果。

通知触发 Intent

首先我们从简单的开始,我们希望某个通知产生的时候,能够自动打开钱迹「记账」页面,从而减少打开某个应用内界面的操作。这里一是通知事件作为触发,二是发送 Intent 来打开指定页面的操作。

复习通知事件

如果之前接触过 Tasker 并且阅读了上一篇利用通知自动回复微信的 文章,应该对 Tasker 的通知事件比较熟悉了。这里我们稍微复习一下通知事件在 Tasker 里的事件参数(Event Context)。

  • %evtprm1 为发送通知的应用
  • %evtprm2 为通知的标题
  • %evtprm3 为通知的内容文本

当然在第一个例子里面不需要这么复杂,Tasker 自带的通知事件可以针对应用和标题进行过滤,这里已经足够我们使用了。

比如这里我们完整匹配了来自饿了么的标题为「您的订单已接单」的通知。关于 Tasker 的模式匹配,可以参考官方文档3。可以简单提一下如果没有特殊符号表示完全匹配,*text* 会匹配任意带text 的文本,/ 表示或,应该能满足大部分的简单的使用场景了。

发送 Intent

设置好触发条件之后,那么就可以执行打开页面的操作。这里使用「发送意图」的动作。

  • 包名:钱迹的包名为 com.mutangtech.qianji
  • 类:记账页面的 Activity 名为 com.mutangtech.qianji.bill.add.AddBillActivity

这里有聪明的小伙伴就会想知道这两个东西怎么得到的。包名比较好找,Activity 名只需要打开相应的页面,手机连接电脑之后执行下面的命令,就可以得到最新打开的 Activity 名称是什么,当然也可以从中知道包名是什么。

adb shell dumpsys activity recents | find "Recent #0"

试试把| 的命令去掉,终端会把最近的 Activty 栈全打印出来。掌握了这个命令,就可以通过 Tasker 启动几乎任何你想要的页面,也不用采用其他插件。当然如果你想用 IntentTask 这类 Tasker 插件来简化这部分操作,也是可以的,它们只是帮你完成了这一步。

通知触发 Deeplink

接下来我们再稍微加深一点难度,毕竟上面的内容只是帮你节省了打开页面操作的时间,还需要手动输入金额,而输金额很麻烦。当通知里面带有金额的时候,要完成自动记账也不是难事。正好钱迹提供了 Deeplink 供自动化记账使用。

Deeplink 简介

根据官方文档,Deeplink 可以描述如下:

深层链接是指将用户直接转到应用中的特定内容的网址。在 Android 中,您可以通过添加 intent 过滤器以及从传入的 intent 提取数据来设置深层链接,以便将用户吸引到正确的 Activity。

在平时使用过程中,其实我们接触还挺多的,最常见的是「在 App 中打开」之类的按钮,或者各种从一个应用跳转到另一个应用某页面的按钮。简单来说,Deeplink 的 URL 里面带有页面所需要的参数,可以被应用正确处理打开页面的同时传一定的信息进去。

钱迹接口

钱迹的接口文档写得比较完善了,大家可以直接看[1]。简单提一下,就是需要拼出一个这样的 URL,然后进行访问就能直接执行钱迹提供的功能:

  • 固定前缀为 qianji://publicapi/addbill?
  • 必须参数账单类型 type,比如 &type=0 表示支出;账单金额 money
  • 其他非必须参数比如 catechoose,等于1表示弹出选择分类面板

操作逻辑

如图实现这样的逻辑:

  • %BALANCE 变量匹配出通知文本 %evtprm3 中的数字,这里抄了一个金额的正则表达式([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?,网上有很多,大家自己取舍。
  • 如果匹配到了,即 If %BALANCE1 Set,则通过构建 URL 来传入金额打开钱迹的分类选择面板,URL 为 qianji://publicapi/addbill?&type=0&catechoose=1&money=%BALANCE1
  • 如果没有匹配到,则打开记账的 Activity,正如前面所述一样发送意图。

效果展示

因为每次支付的时候都忘记录屏,这里用 Pushbullet 测试了两类文本的通知,效果如动图所示。

高级玩法

用通知触发记账其实非常直观,也很有效,但是有两个缺点:

  • 不少通知里面没有金额,甚至不产生通知(比如淘宝支付之后),那么方法就不起效果了
  • 钱迹提供的很多丰富的参数没有利用,比如备注,分类也需要自己选择

关于无通知触发的问题,可以使用 Log Entry 来解决。Log Entry 是去年末 Tasker 更新推出的被称为 Game Changer 的功能,即可以监听 Logcat 来实现触发。具体可见 官方示例,需要使用 ADB 或 Root 授权。

如果这些还不够花里胡哨怎么办?可以看看 @Fairyex语音记账 的方法。通过语音输入转文字,然后对文字进行分隔和提取,就能不但自动记录金额,也可以记录备注、分类等信息。

关联阅读:

> 下载少数派 客户端 、关注 少数派公众号 ,发现更多实用 Tasker 自动化玩法 🐱‍🏍