- 首发:2023-08-28 21:24:45
- 随笔
- 9576
由于工作需要,长期以来我都是iPhone作为主力机,安卓作为备用机。经常出现iPhone在充电的时候需要接收验证码。为了实现备用机和主力机一致的功能体验,特地让AI帮我写了一个APP实现“iPhone短信自动转发到Android手机”。
众所周知,Android手机APP是可以可以申请读取短信内容权限的,实现Android短信自动转发或者自动识别验证码是比较容易的。但是目前为止,我并没有发现市面上存在IOS应用程序可以实现读取短信的。真的没有办法实现读取短信内容吗?带着疑问我让AI帮忙翻阅了Apple开发者文档,最后发现其实是可以实现这个功能的。
在Win11中使用新版Android Studio开发体验真的非常棒,在最新硬件的加持下,媲美IOS开发体验。
绝大部分代码由AI完成,否则我也无法在一天之内完整这个应用程序的开发。不过AI的Bug也是真的多,整个过程我真机测试调试了一百多次,发了一百多条短信。
最终在第二天凌晨1点左右完成了所有功能的开发。实现了我能想到的所有刚需功能。
最终实现的功能:
- 实时和iPhone通讯,接收iPhone端自动转发过来的短信。
- 展示Android和iPhone的实时连接状态,任意一端不在线,另一端可以收到离线提醒。例如iPhone放在书包无电量自动关机后,Android端将会显示离线状态。由此保障了只使用Android端的时候能确保收到短信。
- 复制及转发短信的功能,目前无法实现回复短信的功能。
- “已读”状态提示,Android读过的短信会自动在iPhone中标记已读状态。
- 实现了Android端的开机自动启动,“前台服务”功能,实现始终保活(保持后台运行,不会被系统强制自动关闭),由于整个应用只有一个简单的Service,内存占用极低,几乎不影响续航。Ios端和Android端开机自动连接。任意一端都可以随意开关机,实现整个转发过程是无感的。
- 当通过Android系统通知界面移除通知的时候,自动已读Ios端短信。在我的使用场景下,短信主要功能就是接收验证码,看完了通知就直接标记已读更省事
- 实现了一键已读全部和删除所有历史短信的功能。
我希望实现但暂时没有实现的功能:
- 通过WebRTC实现点对点音视频通话,从而实现Android端接听电话的功能。理论上是可以实现的,但是我用了其他替代方案,就没有去做了。借助CallKit可以实现无需事先启动iPhone端APP接听音视频,这个功能之前我在视频系统中实践过,用户体验极佳。另一种方法,可以通过呼叫转移实现主力机没有接听的时候转发到备用机,也可以通过APP自动设置,监测到Android手机被使用的时候,自动设置呼叫转接到备用机,如果Android手机3分钟没有使用,自动设置取消呼叫转移。当然还有其他方法,这里就不再赘述了。
- iPhone端已读短信后同步到Android端。这个功能由于Android端缺少写入默认短信应用信息的API而不得不放弃。
借助第三方实现的功能:
- 借助开源的短信转发器,可以实现安卓自动转发到iPhone。这样就是双方互相转发了。
- 实现了来电同时显示在iPhone和Android端,可以在任意一端接听,也可以在任意一端挂断后另一端同步挂断。
总结:
本来计划开源APP代码的,但是考虑到这个应用极有可能被不法分子利用,最终放弃开源。
由于精力限制,暂时没有进行APP备案和上架。
可以在iPhone锁屏状态下转发短信吗?
公司值班的同事找我要验证码登录系统,有时我在睡觉没看到,能否分享一下IPA文件
很抱歉,出于客观原因暂时无法分享。
大神,Apple开发者文档能不能获取手机蜂窝网络信息的方法,就是在拨号界面输入"3001#12345#"弹出的信息,包含Serving Cell Info(BAND,Cell ID,PCI等),通过开发一个app来获取这些信息,而不用每次输入拨号。
Apple的iOS SDK并未公开API来直接获取以"3001#12345#"访问的Field Test模式中的蜂窝网络信息。这类信息被认为是敏感且低级的,开发者通常是被阻止访问的。 一些私有API可能能提供这类信息,但是使用私有API的应用无法通过App Store的审核,因此这可能不是一个可行的解决方案。
如果只是为了收新短信,用树莓派应该也能做到转发功能。
苹果是不允许读取用户的短信内容,但是短信拦截功能是可以变相的做到。
https://developer.apple.com/documentation/sms_and_call_reporting/sms_and_mms_message_filtering
短信拦截API没有办法获取对方的手机号。
除了ios平台,其他平台要转发短信应该都挺容易的。
作者老哥,代码不开源。可以大致说一下实现思路吗😕
直接问AI吧😂
由于我使用的方案并不需要“快捷指令”等APP的配合。也无需任何系统权限。因此存在被滥用可能,请大家不要因为此事联系我,谢谢。
能提供一下思路吗,作者大大
像是借助蓝牙实现的功能?
感觉类似手表/carplay那种一样
有一个误区,需求是通过备用机读取主力机上的短信,其实并不需要通过短信转发,需要的是显示短信发送号码+短信内容,使用转发的方式需要消耗主力机的短信额度。可以将短信以文本方式存到云端,然后备用机读取即可。
老师你好,我希望能用一个openwrt路由器实现IPv4和IPv6的桥接,请问我该如何实现?我尝试了直接新增dhcpv6的接口,但是效果不甚理想(无法成功获取公网的ipv6,但是直连上级路由的其他设备是可以获取公网的ipv6地)
![%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE20241205230845.png](https://cdn.wyr.me/visitor-files/2024-12-05/1733411344287屏幕截图 2024-12-05 230845.png)你好
,为什么我这里是0039 813C 0600 0075 16xx xx xx,只有前6组是相同的,博客中要前8位相同,这个不同能不能照着修改呢?我系统版本是Win1124H2
大神你好,win11专业版24h2最新版26100.2033,文件如何修改?谢谢
win11专业版24h2最新版26100.2033,Windows Feature Experience Pack 1000.26100.23.0。C:\Windows\System32\termsrv.dll系统自带的这个文件,39 81 3C 06 00 00 0F 85 XX XX XX XX 替换为 B8 00 01 00 00 89 81 38 06 00 00 90。仍然无法远程连接。原来是win11 21h2系统,是可以远程链接的。共享1个主机,2个显示器,2套键鼠,各自独立操作 各自不同的账号,不同的桌面环境。
博主,win11专业版24h2最新版,C:\Windows\System32\termsrv.dll系统自带的这个文件,找不到应该修改哪个字段。我的微信:一三五73二五九五00,谢谢