1

我在 VOIP 应用程序中使用 CallKit。一切正常,除了在拨出电话后的最近通话列表中,它只显示号码,即使号码保存在电话簿中。例如,电话簿中有一个名为“John”的联系人。现在,如果从应用程序拨出电话,在最近的日志中它只显示号码。这就是我所做的。

NSUUID *callUUID = [NSUUID UUID];
CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypePhoneNumber value:number];
CXStartCallAction *action = [[CXStartCallAction alloc] initWithCallUUID:callUUID handle:handle];
action.contactIdentifier = identifier; //identifier of that contact
[self.callController requestTransaction:[CXTransaction transactionWithActions:@[action]] completion:completion];
4

1 回答 1

4

问题是您在开始拨出呼叫时没有告诉提供者名称,您可以在performStartCallAction中添加下一个代码来解决它:

CXCallUpdate *update = [[CXCallUpdate alloc] init];
[update setRemoteHandle:[[CXHandle alloc] initWithType:CXHandleTypePhoneNumber value:number]];
[update setLocalizedCallerName:name];

[provider reportCallWithUUID:uuid updated:update];

使用此代码,我解决了同样的问题,现在它显示了名称。

于 2017-01-09T11:45:38.153 回答