我尝试添加CallDirectory扩展程序,以根据我的应用中可用的联系人启用呼叫识别。
我已在“通话设置”下启用了权限。
但即使设备收到呼叫,也不会调用beginRequestWithExtensionContext。
beginRequestWithExtensionContext
位于CXCallDirectoryProvider
的子类中,符合CXCallDirectoryExtensionContextDelegate
文档说:
您可以设置识别和阻止来电 执行beginRequest(with :)方法 您的Call Directory扩展的CXCallDirectoryProvider子类。 系统启动应用程序扩展时会调用此方法。
系统何时启动应用扩展程序?
我在我的代表中设置如下:
[[CXCallDirectoryManager sharedInstance] getEnabledStatusForExtensionWithIdentifier:@"com.x.CallerID" completionHandler:^(CXCallDirectoryEnabledStatus enabledStatus, NSError * _Nullable error) {
if (enabledStatus == 0) {
// NSLog(@"Code 0 tells you that there's an error. Common is that the identifierString is wrong.");
} else if (enabledStatus == 1) {
DDLogDebug(@"%@",@"CallerID - Code 1 is deactivated extension");
[self enableCallerIdAlert];
} else if (enabledStatus == 2) {
DDLogDebug(@"%@",@"CallerID - Code 2 is an activated extension");
}
}];
[[CXCallDirectoryManager sharedInstance] reloadExtensionWithIdentifier:@"com.x.CallerID" completionHandler:^(NSError *error){
if(error) {
NSLog(@"CallerID - refresh failed. error is %@",[error description]);
}
//your completetion
}];
CallDirectoryHAndler.m:
- (void)beginRequestWithExtensionContext:(CXCallDirectoryExtensionContext *)context
{
[super beginRequestWithExtensionContext:context];
context.delegate = self;
//phoneNumber , label are dummy
[context addIdentificationEntryWithNextSequentialPhoneNumber:phoneNumber label:label];
[context completeRequestWithCompletionHandler:nil];
}
有人可以指出我在这里失踪的是什么吗?