首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从iPhone上的来电中获取呼叫者的电话号码

从iPhone上的来电中获取呼叫者的电话号码
EN

Stack Overflow用户
提问于 2016-05-11 19:26:14
回答 2查看 13.9K关注 0票数 7

我想知道来电时的来电显示(电话号码)。TrueCaller已经实现了这一点,他们会得到呼叫者的电话号码。

我找到了这个信息: 1. CoreTelephony框架(它只给出通话状态) 2.苹果9.0的更新:“也许”联系人同步。使用邮件应用程序并检测传入的电话号码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-28 22:51:00

###EDIT###

iOS 10及以上版本:

使用Callkit,查看呼叫目录分机

根据文档,

识别传入呼叫者的

当电话收到来电时,系统会首先查询用户的联系人以查找匹配的电话号码。如果未找到匹配项,则系统会查询应用程序的呼叫目录分机,以查找匹配条目来标识电话号码。这对于为独立于系统联系人的用户维护联系人列表的应用程序非常有用,例如社交网络,或者用于识别可能从应用程序内部发起的来电,例如客户服务支持或交付通知。

例如,假设一个用户在社交网络应用程序中与Jane是朋友,但她的联系人中没有她的电话号码。这款社交网络应用程序有一个呼叫目录扩展,可以下载并添加用户所有朋友的电话号码。因此,当用户接到来自Jane的来电时,系统会显示类似于“(App Name) Caller ID: Jane Appleseed”而不是“Unknown Caller”之类的内容。

要提供有关传入调用者的标识信息,可以在beginRequest(with:)的实现中使用addIdentificationEntry(withNextSequentialPhoneNumber:label:)方法。

代码语言:javascript
复制
class CustomCallDirectoryProvider: CXCallDirectoryProvider {
    override func beginRequest(with context: CXCallDirectoryExtensionContext) {
        let labelsKeyedByPhoneNumber: [CXCallDirectoryPhoneNumber: String] = [ … ]
        for (phoneNumber, label) in labelsKeyedByPhoneNumber.sorted(by: <) {
            context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)        
        }

        context.completeRequest()
    }
}

由于此方法仅在系统启动应用程序扩展时调用,而不是为每个单独的呼叫调用,因此您必须一次指定所有呼叫标识信息;例如,您不能请求web服务查找有关来电的信息。

iOS 9及更早版本:

正如Kakshil提到的,呼叫者ID在非越狱设备上是不可能的。

我会给你一些关于真正的呼叫者是如何工作的发现,

  1. 它不读取通话记录,他们实际上创建了Action extension,无论你在哪里尝试分享联系人,它都会显示truecaller应用程序扩展,该扩展代码用于显示从他们的服务器
  2. 获取的联系人详细信息。你可能还会与收到的推送通知混淆,比如"Some X calls you“。这就是truecaller使用技巧的地方。如果你清楚地注意到,只有当你接到安装了truecaller的android用户的电话时,才会收到推送通知。让我详细解释一下,

X(安装了truecaller的安卓用户),呼叫Y (安装了truecaller的ios用户),安卓版本通知服务器X呼叫Y,服务器会向Y的iPhone发送推送通知。

票数 11
EN

Stack Overflow用户

发布于 2016-05-11 19:39:07

呼叫者ID在非越狱设备上是不可能的。

然而,有一种方法,您可以知道是哪个用户在呼叫,但不确定它是否对您有用。

如果您有连接到iPhone的蓝牙设备,它将获得所有通知,包括来电,然后您可以获取呼叫者ID。

除此之外,目前根本没有其他方法可以知道被叫ID。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37161222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档