현재 전화통화 가능한지 판단

import CoreTelephony 

/**
현재 전화통화 가능한지 판단
 
- Returns: true: 통화가능, false: 통화불가
*/
func isCanCall() -> Bool {
    var canCall = false
    let telephonyNetworkInfo = CTTelephonyNetworkInfo()
    if let carrier = telephonyNetworkInfo.subscriberCellularProvider {
        if carrier.mobileNetworkCode?.characters.count > 0 {
            canCall = true
        }
    }
    return canCall
}

현재 통화중인지 판단

import CoreTelephony

// AppDelegate
override func applicationWillEnterForeground(application: UIApplication) {
    if isCalling() {
        // 현재 통화중
    } else {
        // 현재 통화중이 아님
    }
}

/**
 현재 통화중인지 여부 
 
 - Returns: true: 통화중, false: 통화중이 아님
 */
func isCalling() -> Bool {
    let callCenter = CTCallCenter()
    var calling = false
    
    if let currentCalls = callCenter.currentCalls {
        for call in currentCalls {
            if call.callState == CTCallStateConnected {
                calling = true
                break
            }
        }
    }
    return calling
}


Posted by 까칠코더