自动转发安卓机短信到iPhone

自动转发安卓机短信到iPhone

需求与工具

需求

现在很多人都是一台iPhone一台安卓机,而且很多人有2张或3张卡,而iPhone最多放两张卡,所以必定有一张卡(或两张卡)放在安卓机中,又或者虽然你只有两张卡,两张卡可以都放到iPhone中,但由于你安卓机也要上网也要用卡,所以还是选择把其中一张卡放到了安卓机中。

但是这样会造成一个问题,你出去拿个快递,但是快递信息都在安卓机中,但是你出去一般带iPhone出去(因为这是主用机),所以这就有点麻烦,所以我们希望能把安卓机中的短信转发到iPhone中。

工具准备

  • 1、短信转发器:在安卓手机上安装,它是开源app,github下载页面:SmsForwarder(建议直接在安卓手机浏览器上打开该链接下载);
  • 2、Bark:在iPhone手机上安装,它是开源app,github:Finb/Bark,在AppStore中搜索“Bark”下载即可(开发者为“feng huan”),另有一个同类型的工具:chanify
  • 3、bark-server:Bark app的服务器端,非必须,但强烈建议有能力的朋友安装,它也是开源的,github:Finb/bark-server

以上3个app(或工具)都是国人开发的,都是开源在github上的,其中2、3是同一个开发者开发的,毕竟它们是配套的。

短信转发原理:“短信转发器”自动监控并读取到短信,并把它转发到事先填写好的推送链接中,然后iPhone中的“Bark”app就会收到这个推送消息。

我的测试环境

  • 安卓机:Redmi Note 10 Pro, MIUI 13.0.8
  • iPhone:iPhone 11, iOS 16.1

Bark设置

在iPhone AppStore中搜索并安装Bark app,安装好之后,要允许通知:在“iPhone系统设置”顶部搜索栏输入“Bark”搜索到Bark app,点它→通知→把所有通知权限都打开(当然这个也看你自己的需求)。

短信转发器的设置

短信转发器官方文档

系统设置

以我的红米手机MIUI 13.0.8为例,安装好“短信转发器”之后,点击:手机系统设置(齿轮图标)→应用设置→应用管理→搜索“短信”→找到“短信转发器”点进去:

  • 1、自启动:打开“自启动”开关;
  • 2、权限管理:把“发送短信、读取短信与彩信、通知类短信、读取通话记录”都设置为“始终允许”,其它权限看你的需求自行调整;
  • 3、联网控制:WIFI、数据;
  • 4、省电策略:无限制;

打开“短信转发器”,上滑进入任务管理→在任务管理中长按短信转发器→点击“锁”把它锁住(这样你清理任务的时候,不会把它清理掉,而是留在后台)

通用设置

打开“短信转发器”→点击底部最后一个按钮“通用设置”:

  • 1、转发短信广播:开启;
  • 2、转发通话记录:勾选一个或多个要转发的通知类型,然后开启开关(如果你不想转发来电通知,也可以不开启这个开关);
  • 3、保活措施:开启“开机启动、忽略电池优化设置、不在最近任务列表中显示”这三个开关,“请求重试机制”,我设置的是重试1次,间隔1秒,超时10秒;
  • 4、个性设置:设备名称、卡1名称、卡2名称 这三个自己写就行,在Bark

通过以上设置,理论上应该没啥问题了。

添加“发送通道”

点击“短信转发器”底部的“发送通道”→点击“右上角的+号”→选择“Bark”(红色图标):

  • 1、通道名称/状态:你添加一个转发器肯定要有一个名称,我填的是“Bark”;
  • 2、Bark-Server:打开iPhone中的Bark,默认打开的是服务器链接列表,你复制第一个链接,它是这样的
https://api.day.app/sdfdsSIJcddhr9qvmxgasdfLK/这里改成你自己的推送内容

你把后面那个中文删掉,变成下边这样,然后填到“Bark-Server”里即可(注意最后一定要/结尾,否则会提示url格式错误)

https://api.day.app/sdfdsSIJcddhr9qvmxgasdfLK/
  • 3、可选的全部留空不用填,最后的“通知级别”使用默认的“立即亮屏通知”;
  • 4、标题模板:在iPhone中显示通知时,内容的顺序,它有:来源号码、卡槽信息、接收时间、设备名称 四个信息,这个可以留空,也可以根据自己的需求来调整顺序(主要调整在iPhone那边显示的顺序)。

测试:填好之后,点击右下角的“测试”,如果正常,“短信转发器”会提示“请求成功”,而iPhone那边的Bark app:

  • 1、如果你正在Bark app界面中,它会弹出一个弹窗,上面有测试的短信内容(内容大概意思就是测试成功)和几个菜单;
  • 2、如果你不在Bark app界面中,则会通过iPhone的通知弹出一条消息通知,通知内容大概就是测试成功;

测试没问题之后,点击中间的“保存”按钮保存即可。

添加“转发规则”

点击“短信转发器”→点击底部的“转发规则”→点击“右上角+号”:

  • 1、发送通道:选择前面添加好的通道,我这边通道名称叫“Bark”(当然这个名称是你添加通道时填写的,你当时填的是什么,这边就会显示什么);
  • 2、匹配卡槽:全部;
  • 3、匹配字段:短信内容(如果希望转发所有短信,这里直接选“全部”,这样下边的4、5两点就不会显示,也不用选);
  • 4、匹配模式:包含;
  • 5、匹配的值:填“验证码”;
  • 6、启用该条转发规则:开关打开;
  • 7、启用自字义模板和启用正则替换内容,这两个开关我是没有打开,因为用不到;
  • 8、点击右下角的“测试”按钮→测试模拟的来源号码可以随便填,测试模拟的短信内容也可以随便填,但必须要带“验证码”三个字,不然前面的规则就识别不到它,填好之后,点击“测试规则”,如果正常,iPhone那边就会收到一条消息提醒,提醒的内容就是你输入的内容;
  • 9、点击“返回编辑”→点击底部的“保存”。

测试短信转发

  • 1、把安卓机熄屏;
  • 2、用iPhone向你的安卓机卡1或卡2发一条短信,短信内容记得包含“验证码”三个字;
  • 3、如果一切正常,发送一会儿之后,你iPhone应该会收到一条消息通知(Bark app的通知),这条通知的内容,就是你刚刚发给你安卓机的内容,你也可以把安卓机和iPhone都熄屏,然后叫朋友(或者拿家里其它人的手机)给你安卓机发一条短信(注意短信内容包含“验证码”三个字),如果一切正常,你的安卓会收到这条短信,而iPhone也会通过Bark app的通知看到这条短信的内容。

缺点:极少数网站或app发验证码短信的时候,短信内容不包含“验证码”三个字,我特地看过我安卓机上的验证码短信,看到过一条验证码短信,内容中不带“验证码”三个字,这样的短信肯定是无法匹配规则,无法被转发到iPhone的,当然了,这样的验证码短信真的是极少,所以几乎可以忽略这个缺点。

或者你干脆就设置成转发所有短信,这样就不会有这个问题了。

搭建自己的Bark-Server

搭建Bark-Server需要你懂Linux系统基础知识,会安装docker并懂docker的基础使用,会安装nginx以及能看懂nginx配置文件。

短信推送流程

  • → 1、安卓机收到短信;
  • → 2、“短信转发器”读取短信;
  • → 3、“短信转发器”判断短信内容是否符合你添加的规则,比如是否带“验证码”三个字;
  • → 4、如果符合规则,则把它推送到“Bark-Server”链接中(这个链接在添加“发送通道”时有填写) ;
  • → 5、Bark-Server收到短信内容,并把它推送给苹果服务器;
  • → 6、苹果服务器接收到消息通知后把它推送到你的iPhone手机上。

现在问题就在于第4点,“Bark-Server”链接是app默认提供的,这样相当于你把你的短信和手机号都转发到了Bark开发者的服务器上,这样肯定不太放心,所以我们要自己搭建。

搭建Bark-Server

直接看我在github上开源的bark-server-docker文档即可,已经写的非常详细了。

搭建好之后,把前面添加“发送通道”中的那个推送地址换成你自己的地址就行(还是要从Bark app中复制粘贴),注意最后一定要/结尾,否则会提示url格式错误。

打赏
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

自动转发安卓机短信到iPhone