CallDirectory - 如何为电话号码

时间:2018-06-12 06:03:16

标签: ios callkit incoming-call

我有以下要求,我需要您宝贵的建议和解决方案。

要求:

每当我接到一个特定号码的电话时,我都需要拨打API电话并获取一些信息,并需要将其与来电显示一起显示为标签文字。

请建议是否可以达到要求,如果是,请指导我解决方案。

我遵循以下步骤:

  1. 创建了CallDirectoryExtension并添加了特定的数字 一些标签。
  2. 启用了呼叫识别和阻止
  3. 每当我拨打电话[App Name]被叫ID:[标签]正在接收 显示而不是未知。
  4. 要识别来电,我正在使用CXCallObserver和public func callObserver(_ callObserver:CXCallObserver,callChanged call: CXCall)方法。
  5. 调用所需的API并将数据保存在Userdefaults下 app group。
  6. 调用CXCallDirectoryManager.sharedInstance .reloadExtension(withIdentifier: " com.example.Sample.SampleDirectory")重新执行 CXCallDirectoryProvider的方法覆盖func beginRequest(with context:CXCallDirectoryExtensionContext) context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber,label:label)正在执行新的更改 通过从应用程序组获取标签使用默认值。
  7. 但是在来电者屏幕上标签没有更新。
  8. 请告知如何在有来电时更改标签(调用API并获取一些详细信息,我将其设置为更新的标签)。

1 个答案:

答案 0 :(得分:0)

CallDirectory Extension不支持您的请求。相反,您要预先识别/阻止的所有电话号码,才能被操作系统匹配和识别。

这意味着当电话铃响起时,如果该号码与用户的联系人不匹配,则操作系统会查询CallDirectory扩展。如果电话已添加,则该电话已匹配。

根据我对您的实施情况的了解,您将获得更新的标签,但可能会导致随后的来电(但不一定是当前电话)。