5

我正在尝试集成 CallDirectory Extension 以阻止某些来电。但应用程序甚至无法识别为阻止提供的数字。有没有人成功做到这一点?你可以看到我使用的格式..

   private func addIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) throws {

            let phoneNumbers: [CXCallDirectoryPhoneNumber] = [ 18775555555, 18885555555,+91949520]
            let labels = [ "Telemarketer", "Local business","myPhone"]

            for (phoneNumber, label) in zip(phoneNumbers, labels) {
                context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)
            }
        }

而且,我将此用于开发。http://iphoneramble.blogspot.in/2016/07/ios-10-callkit-directory-extension.html

测试设备和 iOS 版本 - iphone 5s ,iOS 10.1

4

3 回答 3

6

Atlast,我有呼叫阻塞的解决方案。我没有办法检查呼叫阻止代码是否有效。以下是我为使其发挥作用所做的一些事情。

  • 检查您的应用程序是否在 64 位 iOS 设备(iphone 5s 或更大的设备)上运行
  • 按数字升序添加数字
  • 为每个号码添加国家代码
  • 下面给出了添加手机号码进行屏蔽的示例代码

    让 phoneNumber : CXCallDirectoryPhoneNumber = CXCallDirectoryPhoneNumber("+9194******")!context.addBlockingEntry(withNextSequentialPhoneNumber: phoneNumber)

  • 检查您的应用程序是否允许黑电话(设置->电话->呼叫阻止和识别->检查您的应用程序是否允许阻止呼叫)

  • 您还可以通过将以下代码放入您的 viewController 来检查 enabledStatus

CXCallDirectoryManager.sharedInstance.getEnabledStatusForExtension(withIdentifier: "bundleIdentifierOfYourExtension", completionHandler: {(status, error) -> 如果让错误 = 错误 { print(error.localizedDescription) } })

  • 另外,将以下代码添加到 viewController

CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier: “bundleIdentifierOfYourExtension”, completionHandler: { (error) -> Void in if let error = error { print(error.localizedDescription) } })

您会发现这些 url 对开发很有帮助。 http://iphoneramble.blogspot.in/2016/07/ios-10-callkit-directory-extension.html

https://translate.google.com/translate?hl=en&sl=zh-CN&u=http://colin1994.github.io/2016/06/17/Call-Directory-Extension-Study/&prev=search

如果您有改进的方法和更正,请告诉我。感谢和快乐的编码。

于 2016-11-21T10:53:49.227 回答
1

很高兴看到 Apple 聆听 CX 的增强请求。在 iOS 13.4 中,Apple 添加了直接从应用程序打开呼叫阻止和识别设置的功能。

func openSettings(completionHandler completion: ((Error?) -> Void)? = nil)

https://developer.apple.com/documentation/callkit/cxcalldirectorymanager/3521394-opensettings

于 2020-05-13T16:40:36.593 回答
1

电话号码数组必须是 int64 的排序列表。从最小到最大。否则,该列表将被拒绝,并出现“条目乱序”错误。

于 2016-11-20T12:01:37.137 回答