查找用户是否在通话中?
Find if user is in a call or not?
我想查看用户是否在使用该应用程序,并查看他们是否在 phone 通话中。我正在关注此 link 以查看是否有用户在 phone 通话中:iOS How to check if currently on phone call。但是,这看起来像是 Objective-C。我想知道是否有 Swift 等价物。这是我的尝试:
var currCall = CTCallCenter()
var call = CTCall()
for call in currCall.currentCalls{
if call.callState == CTCallStateConnected{
println("In call.")
}
}
但是,call 似乎不像上一个示例那样具有属性 .callState
。任何帮助,将不胜感激!谢谢!
Swift 2.2 的更新:您只需安全地解包 currCall.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.")
}
}
}
iOS10,Swift3
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):
private var isOnPhoneCall: Bool {
return CXCallObserver().calls.contains { [=10=].hasEnded == false }
}
我想查看用户是否在使用该应用程序,并查看他们是否在 phone 通话中。我正在关注此 link 以查看是否有用户在 phone 通话中:iOS How to check if currently on phone call。但是,这看起来像是 Objective-C。我想知道是否有 Swift 等价物。这是我的尝试:
var currCall = CTCallCenter()
var call = CTCall()
for call in currCall.currentCalls{
if call.callState == CTCallStateConnected{
println("In call.")
}
}
但是,call 似乎不像上一个示例那样具有属性 .callState
。任何帮助,将不胜感激!谢谢!
Swift 2.2 的更新:您只需安全地解包 currCall.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.")
}
}
}
iOS10,Swift3
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):
private var isOnPhoneCall: Bool {
return CXCallObserver().calls.contains { [=10=].hasEnded == false }
}