You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Ionic/Angular应用关闭时读取指定号码短信并对接API?

解决方案:Android/iOS 关闭状态下接收指定号码短信

Android 平台实现方式

1. 静态注册广播接收器

Android 支持通过静态注册 SMS_RECEIVED_ACTION 广播接收器,在应用关闭甚至进程被杀的情况下接收短信广播。具体操作:

  • 在 AndroidManifest.xml 中声明 READ_SMS、RECEIVE_SMS 权限,同时注册广播接收器并指定接收 android.provider.Telephony.SMS_RECEIVED 动作。
  • 在广播接收器的 onReceive 方法中解析短信内容,筛选出指定号码的消息。
  • 由于广播接收器生命周期极短,禁止直接执行耗时的网络请求,建议调用 WorkManager 发起一次性后台任务,将短信内容通过 REST API 发送至服务器。WorkManager 可保证任务在合适时机执行,即便进程重启也不受影响。

2. 注意事项

  • Android 13 及以上版本需额外申请 POST_NOTIFICATIONS 权限,用于后续给用户推送通知。
  • 部分国产 ROM 对后台广播有额外限制,需引导用户为应用开启「自启动」「后台运行」权限。

iOS 平台实现方式

iOS 对第三方应用后台权限限制严格,应用关闭时接收短信只能通过 SMS Filter Extension:

  • 创建 SMS Filter Extension 目标,该扩展独立于主应用运行,可拦截系统收到的所有短信。
  • 在扩展的 SMSFilterManager 实现中,过滤指定号码的短信并将内容通过 API 发送至服务器。
  • 需引导用户在系统设置的「信息」-「未知与过滤信息」中,将你的应用设为过滤应用,扩展才能生效。
  • 扩展运行资源有限,网络请求需尽量轻量化,避免超时。

替代方案

1. 短信转发到服务器号码

引导用户在系统短信应用中设置「指定号码短信转发」,将目标号码的短信转发至绑定服务器的手机号。服务器接收短信后完成内容处理,再通过推送通知告知用户。此方案无需应用后台运行,兼容性强,但需要用户完成转发设置。

2. Android 辅助功能监听(备选)

通过 Accessibility Service 监听短信应用的通知栏消息,解析通知中的短信内容。但该方案依赖短信应用的通知格式,稳定性较差,且需要用户授予辅助功能权限,仅作为兜底方案。

内容的提问来源于stack exchange,提问作者Colin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:24:59