我在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];
答案 0 :(得分:3)
问题在于,您在开始拨出电话时不会告诉提供商名称,您可以通过 performStartCallAction 添加下一个代码:
CXCallUpdate *update = [[CXCallUpdate alloc] init];
[update setRemoteHandle:[[CXHandle alloc] initWithType:CXHandleTypePhoneNumber value:number]];
[update setLocalizedCallerName:name];
[provider reportCallWithUUID:uuid updated:update];
使用此代码我解决了同样的问题,现在它显示了名称。