2

我在 Xcode 中创建了一个基本的呼叫目录扩展。它附带的示例代码显示了如何阻止电话号码或显示有关电话号码的信息。以下是阻止电话号码 22334455 所需的最少代码:

class CallDirectoryHandler: CXCallDirectoryProvider {

    override func beginRequest(with context: CXCallDirectoryExtensionContext) {
        context.delegate = self

        context.addBlockingEntry(withNextSequentialPhoneNumber: 22334455)
        //context.addIdentificationEntry(withNextSequentialPhoneNumber: 22334455, label: "Telemarketer")

        context.completeRequest()
    }
}

extension CallDirectoryHandler: CXCallDirectoryExtensionContextDelegate {
    func requestFailed(for extensionContext: CXCallDirectoryExtensionContext, withError error: Error) { }
}

根据 Xcode 中的示例,使用方法 addIdentificationEntry 而不是 addBlockingEntry 应该同样容易显示呼叫者 ID,但我无法让它工作。

阻止工作正常,但如果我尝试显示来电显示,电话只会显示电话号码。它没有显示我尝试添加的文本“Telemarketer”。

我错过了什么?

4

1 回答 1

2

答案简单得令人沮丧。

addIdentificationEntry() 需要国家代码, addBlockingEntry() 不需要。

当我在电话号码的开头添加 47(挪威的国家代码)时,它起作用了。这是显示挪威电话号码 22334455 (+4722334455) 的来电显示的工作代码:

class CallDirectoryHandler: CXCallDirectoryProvider {

  override func beginRequest(with context: CXCallDirectoryExtensionContext) {
    context.delegate = self

    context.addIdentificationEntry(withNextSequentialPhoneNumber: 4722334455, label: "Telemarketer")

    context.completeRequest()
  }
}

addBlockingEntry() 使用 22334455 和 4722334455 作为输入。

于 2016-09-20T19:50:34.183 回答