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

如何通过Flutter或原生iOS获取iPhone通话记录?Truecaller实现原理探讨

问题

我查阅了大量博客、Stack Overflow回答后发现,iOS并没有用于获取通话日志的官方API。但安装Truecaller后,却能在通话记录界面和来电界面看到它标记的垃圾来电,请问Truecaller是如何实现这个功能的?

通话记录界面标记示例
来电界面标记示例

实现原理解析

Truecaller主要靠iOS开放的几个机制实现来电标记功能,具体如下:

  • CallKit扩展对接:iOS的CallKit框架允许第三方应用接入来电处理流程。当有来电时,Truecaller的CXCallDirectoryProvider扩展能提前拿到来电号码,匹配自己的云端号码数据库后,把标记信息(比如“垃圾来电”“诈骗电话”)返回给系统,系统就会在来电界面直接显示这些标记。

  • 间接关联通话记录:iOS不让直接读通话日志,但Truecaller可以借助通讯录权限,把用户通讯录里的号码和云端标记做匹配;另外,用户用Truecaller拨打电话时,应用能记录这些通话信息,同步到自己的界面里,实现类似系统通话记录的标记展示。

  • 用户数据共享与云端匹配:Truecaller会引导用户主动上传通话标记数据,同时利用后台能力处理来电相关通知,结合云端庞大的号码库,实时匹配并推送标记信息。用户接到来电后,应用也能通过本地逻辑更新号码标记,在用户查看系统通话记录时,通过关联通讯录备注等方式显示标签。

  • 通讯录备注植入:Truecaller会请求通讯录写入权限,把标记过的号码信息写入到对应联系人的备注或自定义字段里。系统通话记录显示号码时,会同步展示通讯录里的备注内容,间接实现标记效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:15:14