如何在我的应用程序中使用呼叫目录分机来识别来电?

我正在致力于callKit框架,我发现通过使用呼叫目录扩展名,我们可以识别传入的电话号码。我的问题是如何在iOS应用中实现呼叫目录扩展以识别来电详细信息。我的目的C.如何在我的应用程序中使用呼叫目录分机来识别来电?

工作让许多“+ 919876xxxxx”呼叫目录扩展使用此方法添加:

- (BOOL)addIdentificationPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context { 

// Numbers must be provided in numerically ascending order.

CXCallDirectoryPhoneNumber phoneNumbers[] = {+919876xxxxx};

NSArray<NSString *> *labels = @[ @"Telemarketer"];

NSUInteger count = (sizeof(phoneNumbers)/sizeof(CXCallDirectoryPhoneNumber));

for (NSUInteger i = 0; i < count; i += 1) {

CXCallDirectoryPhoneNumber phoneNumber = phoneNumbers[i];

NSString *label = labels[i];

[context addIdentificationEntryWithNextSequentialPhoneNumber:phoneNumber label:label];

}

return YES;

}

我的呼叫阻塞和识别功能在手机设置。 当我从这个号码呼叫时,它显示[应用名称]来电显示:电话推销员。

我的问题是如何知道我的应用程序中的这个数字,以便我在表格中显示此数字。

在此先感谢。

回答:

如果这个问题不是如何写一个呼叫目录扩展,但是如何获得一个来电号码,我认为这是问题所在,那么它是不可能的。

当有来电时,不涉及通话目录分机。它所做的只是注册号码,该号码存储在电话应用专用的内部SQL数据库中。当有来电时,呼叫目录扩展程序不会运行,因此它和您的应用程序无法识别来电号码,这与以往一样,它在iOS 10中没有更改。

在iOS 10中添加了Voip应用程序的呼叫检测功能,但如果您不是voip应用程序,仍然无法获得传入(或传出)呼叫的号码。

回答:

首先,你需要让CallBlocker应用程序在应用程序设置为 遵循此 -

进入设置 - >电话 - >呼叫阻止&识别 - >启用您的 应用。

在使用addIdentificationEntry后添加的条目

private func addIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) throws { 

let phoneNumbers: [CXCallDirectoryPhoneNumber] = [ 18775555555, +919899999999 ]

let labels = [ "Telemarketer", "Local business" ]

for (phoneNumber, label) in zip(phoneNumbers, labels) {

context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)

}

}

这是使用延长工作在Xcode 8.x中迅速3.X

以上是 如何在我的应用程序中使用呼叫目录分机来识别来电? 的全部内容, 来源链接: utcz.com/qa/262830.html

回到顶部