Ios 查找用户是否在通话中?
我想看看用户是否在使用该应用程序,以及他们是否在打电话。我通过此链接查看是否有用户在打电话:。然而,这看起来像是针对Objective-C的。我想知道是否有类似的Swift。这是我的尝试:Ios 查找用户是否在通话中?,ios,swift,phone-call,Ios,Swift,Phone Call,我想看看用户是否在使用该应用程序,以及他们是否在打电话。我通过此链接查看是否有用户在打电话:。然而,这看起来像是针对Objective-C的。我想知道是否有类似的Swift。这是我的尝试: var currCall = CTCallCenter() var call = CTCall() for call in currCall.currentCalls{ if call.callState == CTCallStateConnected{
var currCall = CTCallCenter()
var call = CTCall()
for call in currCall.currentCalls{
if call.callState == CTCallStateConnected{
println("In call.")
}
}
然而,调用似乎不像上一个示例中那样具有属性
.callState
。任何帮助都将不胜感激!谢谢 Swift 2.2更新:您只需安全地打开currccall.currentCalls
import CoreTelephony
let currCall = CTCallCenter()
if let calls = currCall.currentCalls {
for call in calls {
if call.callState == CTCallStateConnected {
print("In call.")
}
}
}
前面的答案:您需要安全地展开并告诉它是什么类型,编译器不知道
import CoreTelephony
let currCall = CTCallCenter()
if let calls = currCall.currentCalls as? Set<CTCall> {
for call in calls {
if call.callState == CTCallStateConnected {
println("In call.")
}
}
}
导入核心电话
让currCall=CTCallCenter()
如果let calls=currCall.currentCalls as?设置{
打电话进来{
如果call.callState==CTCallStateConnected{
println(“通话中”)
}
}
}
iOS 10,Swift 3
import CallKit
/**
Returns whether or not the user is on a phone call
*/
private func isOnPhoneCall() -> Bool {
for call in CXCallObserver().calls {
if call.hasEnded == false {
return true
}
}
return false
}
或更短(swift 5.1):
在设备上运行时,您面临的问题是什么?您是否面临警告或错误之类的构建问题?@Sam我无法编译代码。上面for循环中的对象
call
无法识别.callState
属性。我想您可以在第一行将.currentCalls
强制转换为Set
,而不是单独强制转换每个调用。似乎很有希望!谢谢。这是不推荐的。CTCallCenter类/api是不推荐的,因为iOS 10即使本应侦听的应用程序被禁用,也可以侦听此事件吗?您好,如果我想检查是否显示incomming call,如何执行此操作?谢谢,如果我想检查是否有来电显示,怎么做?Thanksalways get call.hasend==false如果关闭应用程序,打开应用程序,则hasend=true
private var isOnPhoneCall: Bool {
return CXCallObserver().calls.contains { $0.hasEnded == false }
}