【问题标题】:Call blocking feature in iOS 10iOS 10 中的呼叫阻止功能
【发布时间】:2016-11-18 09:50:23
【问题描述】:

我正在尝试集成 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

【问题讨论】:

  • 请分享一些代码。

标签: ios iphone swift callkit callblocking


【解决方案1】:

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

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

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

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

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

CXCallDirectoryManager.sharedInstance.getEnabledStatusForExtension(withIdentifier: “bundleIdentifierOfYourExtension”,completionHandler: {(状态,错误)-> 无效 如果让错误=错误{ 打印(错误.localizedDescription) } })

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

CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier: “bundleIdentifierOfYourExtension”,completionHandler: { (error) -> Void in 如果让错误=错误{ 打印(错误.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

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

【讨论】:

  • 某种意义上的数字升序?
  • 呼叫目录分机不提供任何号码标识
  • 也不要阻止通话帮助我
  • 首先,您无法使用通话套件接收来电的电话号码。
  • 检查设置->手机->通话拦截和识别->检查你的应用是否允许拦截通话
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 2012-03-23
      • 2014-05-12
      相关资源
      最近更新 更多