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

React Native不使用Voip如何实现应用关闭时可触发的虚假来电

无VoIP实现全场景虚假来电功能落地方案

为什么CallKeep达不到预期

CallKeep的核心逻辑是调用系统原生CallKit框架注入通话记录、拉起系统来电UI,目前国内安卓定制ROM基本都对第三方应用屏蔽了CallKit调用权限,iOS端也对普通应用收紧了CallKit权限审批,非合规通话类应用根本拿不到调用权限,弹不出系统级来电界面,出现适配问题是必然的,不需要继续在这个方案上消耗时间。

应用关闭状态下的触发逻辑(无VoIP依赖)

  • 安卓端采用「高优先级厂商推送+精确闹钟广播」双保险触发机制,完全不需要VoIP相关能力:
    • 单独对接主流厂商的官方推送通道(小米、华为、OPPO、vivo、荣耀),不要仅依赖第三方聚合推送,申请推送的重要提醒权限,收到透传消息后直接启动来电全屏Activity,不要走普通通知折叠展示逻辑。
    • 针对推送到达率不足的场景,使用AlarmManager设置精确定时任务,Android 12及以上版本提前申请SCHEDULE_EXACT_ALARM权限,对应机型引导用户开启「后台弹出界面」「自启动」权限,闹钟触发的BroadcastReceiver内不要加冗余逻辑判断,直接拉起来电页,最大程度降低系统拦截概率。
    • 不要尝试前台服务保活、双进程保活这类过时方案,当前所有主流安卓版本对后台进程的限制极强,应用被杀死后这类保活逻辑基本都会失效。
  • iOS端受系统权限限制,无VoIP能力的应用无法在杀进程状态下直接拉起应用内页面,退而求其次申请*Critical Alerts(紧急警报)*推送权限,这类推送可以在静音、勿扰模式下强制响铃,用户点击推送弹窗后直接进入应用内的来电界面,是当前iOS端唯一合规的可落地方案。

虚假来电UI实现逻辑

  • 完全自定义本地来电页面,不要依赖系统电话组件:给来电Activity设置全屏无状态栏主题,在页面生命周期里加入屏蔽返回键、屏蔽导航栏手势、锁屏状态下直接亮屏展示的逻辑,保证页面弹出时的优先级和系统来电一致。
  • UI布局对齐对应机型的系统来电样式:包含联系人头像/名称、接听/拒接按钮、静音/快捷短信回复入口,搭配和系统来电完全一致的震动节奏、铃音渐入效果,还原度可以做到和真来电无明显差异。
  • 接听按钮点击后直接跳转自定义的通话中页面,本地实现通话计时、免提、静音、挂断等交互即可,不需要走任何实际通信链路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:33:21