iOS 10中的呼叫阻止功能

时间:2016-11-18 09:50:23

标签: ios iphone swift callkit callblocking

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

3 个答案:

答案 0 :(得分:5)

到目前为止,我已经获得了阻止呼叫的解决方案。我还没有办法检查呼叫阻止代码是否正常工作。以下是我为使其发挥作用所做的一些事情。

  • 检查您的应用程序是否在64位iOS设备上运行 (iphone 5s或更高版本的设备)
  • 以数字递增顺序添加数字
  • 为每个号码添加国家/地区代码
  • 下面给出了用于添加阻止手机号码的示例代码

      

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

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

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

CXCallDirectoryManager.sharedInstance.getEnabledStatusForExtension(withIdentifier:   " bundleIdentifierOfYourExtension",completionHandler:   {(状态,错误) - >无效           if let error = error {               打印(error.localizedDescription)           }       })

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

CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier:   “bundleIdentifierOfYourExtension”,completionHandler:{(错误) - >无效                   if let error = error {                        打印(error.localizedDescription)                   }               })

您会发现这些网址对开发很有帮助。  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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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