gpt4 book ai didi

ios - 如何使用 CallKit API 映射社交资料

转载 作者:行者123 更新时间:2023-11-28 18:52:04 27 4
gpt4 key购买 nike

现在我正在尝试将 CallKit 集成到现有的 VoIP 应用中。

根据 API,通过 CallKit 报告的每个调用都有一个与之关联的句柄。我们应用程序的用户可以进行音频和视频通话,这些通话是在账户之间建立的,他们没有任何关联的“电话号码”,因此我们将通话句柄类型设置为“通用”,并使用一些特殊的账户标识符作为这些句柄的值.这些用户帐户对用户不友好,不应显示在 UI 中。

因此自然而然地希望在通话记录中显示真实的用户名。这是我们遇到障碍的地方。

根据 WWDC session ,社交资料将成为集成 CallKit 的 VoIP 应用程序之间的一种链接,所以我的问题是如何创建社交资料并将其与 Callkit API 链接?

在检查了几个 VoIP 应用程序后,我认为使用这些信息创建新联系人的方法不正确,因为我在联系人中找不到它们。

任何意见/建议/帮助将不胜感激!!!

提前致谢。

最佳答案

它的回复晚了,但它可能对 future 的观众有所帮助。您可以在 ProviderDelegate 中欺骗它。无论您有什么GenericPhoneNumber,只需使用您的句柄开始调用。并通过开始调用操作向您发送被调用者姓名,如

public func startCall(handle: String,contactIdentifier:String/*Your Callee Name*/, video: Bool = false) {
let handle = CXHandle(type: .Generic, value: handle)
let startCallAction = CXStartCallAction(callUUID: NSUUID(), handle: handle)

startCallAction.video = video
startCallAction.contactIdentifier = contactIdentifier //Callee name goes with action so we can get in Delegate
let transaction = CXTransaction()
transaction.addAction(startCallAction)

requestTransaction(transaction)
}

在那个主要技巧之后是在 ProviderDelegate Like

中的 StartCallAction 中更新您的调用
public func provider(provider: CXProvider, performStartCallAction action: CXStartCallAction) {

let update = CXCallUpdate()
update.remoteHandle = action.handle
update.hasVideo = action.isVideo
update.localizedCallerName = action.contactIdentifier //Here contactIdentifier is assigned callee name on start call

self.provider.reportCall(with: action.callUUID, updated: update)


// Rest of your code
}

对于来电设置CXCallUpdate的localizedCallerName

在你的通话记录中它会显示类似

enter image description here

关于ios - 如何使用 CallKit API 映射社交资料,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39957242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com