2

探索从短信转发到通知推送的全平台解决方案

 1 month ago
source link: https://sspai.com/prime/story/cross-platform-sms-forwarding-solution
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

上一版短信转发和通知方案用了五年,逐渐不能适应新的情况,于是最近重新探索了一番。结果是令我满意的:无论是 iOS、Android 还是 Windows 设备,都可以顺畅接收到推送。设备要求方面也很宽松,从旧手机到百元的开发板,可以各取所需,丰俭由人。

这篇文章就来分享一下我的探索成果。这可能是网络上关于短信转发与通知的最全面的一篇文章了,enjoy :)

自用的短信转发设备

短信转发方案

如何实现短信转发

方案一:使用 Android 旧手机转发

自己如果有淘汰下来的 Android 手机,那这个方案近乎是 0 成本。

早年间我们还需要通过 Tasker 等自动化软件写脚本、改配置完成转发,但现在已经有SMSForwarder 短信转发器这种成熟解决方案,下载安装即可使用,门槛很低,可玩性很高。少数派此前也有相关文章介绍过这个方案。

但这种方案也存在两个问题:一是后台保活挑机器和系统版本;另一个则是长期插电使用存在电池鼓包风险。

先说后台保活挑机器和系统版本的问题。虽然 SMSForwarder 支持众多 App 保活方案,但各家系统的 OS 也在与时俱进,杀起后台来毫不手软。

我曾经试过一台 Oppo R15 给予全部权限、允许自启、关闭后台限制、确保 app 内保活选项全开,但息屏运行一天后 SMSForwarder 就会被中止,短信转发自然也会失败。如果你也想使用这个方案,建议参考这个文档把所有能开的保活措施都打开,然后测试几天看看服务是否稳定。

再说长期插电使用存在的电池鼓包风险。我玩短信转发大概有 6 年了,期间手机电池鼓包过一次。这还是建立在我已经配合智能插座、Home Assistant 和 Tasker ,实现充电 80% 自动停充,电量 10% 自动启充的基础上。这里应该也有早期系统电源管理功能不完善和第三方电芯的锅,但话说回来,都是 Android 旧手机了,它也不太可能有较新的系统和官方电芯替换。

当然,如果你的电池长期使用起来不鼓包,那可以忽略此问题。只是我觉得都是旧手机了,换电的性价比不高、安全性也存疑,所以后续就升级到性价比更高、更安全的解决方案了。

方案二:使用随身 Wi-Fi

这个方案其实是上面通过 Android 旧手机转发短信的一个操作变种,它本质上是一台没有电池,直接通过 USB 供电的 Android 4.0 时代的手机(没电池就很安全)。

在淘宝上你可能见到过 9.9 元的 USB 版本的随身 Wi-Fi 硬件,这其中有部分产品的芯片是来自于二手手机的拆机芯片,里面最多的就是高通 410 处理器(即红米 2 代使用的处理器),这就让随身 Wi-Fi 具备了刷成 Android 系统的潜力。

然而就成本而言,9.9 元的售价并不能覆盖硬件的成本。商家最初的想法是通过顾客后续购买流量包来实现长期盈利。所以如果你想要买回来一个硬件直接刷成 Android 系统,商家天然会给你设置很多阻碍。包括但不限于:

  • 云控:不让你从商家的 eSIM 卡切换到自己安装的手机卡
  • 硬件上直接去除了卡槽

因此,如果我们想自己折腾的话,就需要有比较强的信息搜索+动手能力。

咸鱼搜索随身WiFi

咸鱼搜索随身WiFi

好在我们还有海鲜市场,只要加价几十块就可以看到很多改装好的随身 Wi-Fi 硬件。通常它们会去除云控、刷好 Android,有的还会加装散热小风扇(但如果只用于短信转发其实没必要)。买来简单配置后就可以配置 SMSForwarder 使用。

不管是什么短信转发方案,最麻烦的始终就是电信卡,具体原因可以参考这篇文章。如果旧款 Android 手机不支持 VoLTE 功能,使用电信卡接收短信可能会遇到问题。在随身 Wi-Fi 里也是如此,所以购买之前务必得先和卖家沟通好是否支持自身的运营商卡片,如果不行的话能否退货。

方案三:使用开发板

此方案所设门槛较高,须具备基础的烧录、焊接及编程知识,比较适合那些喜欢折腾的朋友。因为整套方案无需电池,所以安全性也是有保证的。

需要购买合宙Air7 系列的开发板(需要根据自己卡的运营商挑选开发板型号),成本大概二三十元。然后使用 GitHub 上面的固件自行完成烧录,想玩的可以参考下面这些文档:

当然,不想折腾的话咸鱼市场也有焊好的全套硬件,使用 Air724UG 的产品大概价格在 50 元左右,支持移动,联通,电信三家运营商,省时省心。

咸鱼 Air724UG 成品图-Sora

咸鱼 Air724UG 成品图-Sora

方案四:商用解决方案

这里的合规备案在售的短信收发开发板成品应该只有绿芽在卖:一台成品可以插两张卡,移动联通电信可随意组合。其系统做的比较完善,所有的输入和输出数据都封装成了 HTTP(Get/Post)或是 TCP 自有协议,可以直接发送到自己的系统里。

至于缺点——价格比较贵。绿邮开发板的价格是 239 元,主要因为其原始用途还是面向行业客户需求,而非个人爱好者。但这套系统功能齐全,文档也比较清晰,可玩性还是蛮高的。

绿芽商用短信转发产品

绿芽商用短信转发产品

它们家还有两款基于这套开发板的开箱即用产品:绿芽A6(可以语音回复电话,售价 259) 和 E5(不可语音回复电话,售价 189),买到后插电、关注公众号完成配置就可以使用,适合不在乎价格不想折腾追求安全稳定的朋友们使用。

如何实现通知推送

方案一:借助主流跨平台消息应用

因为像企业微信、钉钉、飞书、Telegram、Slack、Discord 这样的 IM 软件是全平台的,所以最简单的全平台推送方式就是借助这些应用的 webhook 机器人实现。

(webhook 的原理和使用超出了本文的讨论范围。简单来说,一个 webhook 通常是一个较为冗长的地址。按照相关文档中指定的格式向这个地址发送请求,就可以触发预先制定的自动化流程,例如本文场景中就是将短信文本转发到 IM 软件的特定会话。)

大多数短信转发项目支持将短信直接转发到机器人。只需将机器人添加到相应群组中,并将 webhook 地址输入到项目设置中,即可轻松完成配置。但如果你平时用的设备比较多,而 IM 应用又不支持多平台同时登陆(比如微信),那就可以考虑一些更原生的解决方案。

方案二:Bark(适用于 Apple 系统)

iOS 和采用 Apple silicon 的 Mac 上,直接选择 Bark 即可,免费、安全、隐私、稳定、无后台不耗电、适配项目多、文档完善……很难找到缺点。这个工具的现有教程已经很多,使用和配置也不复杂,这里不多赘述。

方案三:FCM-toolbox(适用于 Android)

Android 在国内想要获得 Bark 这样的体验还是非常困难的,原因如下:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK