import UIKit
import CallKit
class ViewController: UIViewController {
deinit {
observer?.setDelegate(nil, queue: DispatchQueue.main)
observer = nil
}
fileprivate var _beforeDate:Date!
fileprivate var observer:CXCallObserver?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
observer = CXCallObserver()
observer?.setDelegate(self, queue: DispatchQueue.main)
}
@IBAction func click(_ sender: Any) {
}
}
extension ViewController:CXCallObserverDelegate {
func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
//接通
if call.isOutgoing && call.hasConnected && !call.hasEnded {
//记录当前时间
_beforeDate = Date()
}
//挂断
if call.isOutgoing && call.hasConnected && call.hasEnded {
//计算通话时长
let date = Date(timeInterval: 0, since: _beforeDate)
let a = date.timeIntervalSinceNow
let timeString = String(format: "%0.f", fabs(a))//转为字符型
print(timeString)
}
}
}
网友评论