CTCallCenter
में, एक विधि है, callEventHandler
कि आप एक ब्लॉक पास कर सकते हैं जिसे कॉल ईवेंट होने पर बुलाया जाएगा। इस ब्लॉक में, आपको CTCall
ऑब्जेक्ट पास किया जाएगा, और callState
प्राप्त हो सकता है। इसलिए, जब कोई कॉल शुरू या समाप्त हो जाती है, तो उसे अधिसूचना मिल सकती है, और इसे उचित तरीके से संभाल लें। आप यह नहीं समझ सकते कि किस एप्लिकेशन ने कॉल शुरू की है, लेकिन यदि आप कॉल करते समय एक ivar सेट करते हैं, तो आप यह बता सकते हैं कि यह आपका एप्लिकेशन है जिसने कॉल किया था।
उदाहरण के लिए:
CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler=^(CTCall* call){
if (call.callState == CTCallStateDisconnected)
{
//handle disconnect
}
};
संपादित करें: अपने प्रश्न को फिर से पढ़ना, आप इन घटनाओं जब तुम निलंबित कर रहे हैं, सही करना चाहते हैं? मुझे नहीं लगता कि यह संभव है।
docs से:
यदि आपका आवेदन जब एक कॉल घटना घटती है सक्रिय है, सिस्टम तुरंत अपने हैंडलर को घटना डिस्पैचिज। हालांकि, आपका आवेदन निलंबित होने पर कॉल ईवेंट भी हो सकते हैं। हालांकि इसे निलंबित कर दिया गया है, आपके आवेदन को कॉल इवेंट प्राप्त नहीं होते हैं। जब आपका एप्लिकेशन सक्रिय स्थिति को फिर से शुरू करता है, तो उसे प्रत्येक कॉल के लिए एकल कॉल ईवेंट प्राप्त होता है जो राज्य बदलता है-इससे कोई फर्क नहीं पड़ता कि आपके एप्लिकेशन को निलंबित करते समय कॉल कितने राज्य को प्रभावित करता है। सक्रिय ऑपरेशन पर लौटने पर आपके आवेदन पर आपके हैंडलर को भेजा गया एकल कॉल ईवेंट उस समय कॉल के राज्य का वर्णन करता है।
आपका मतलब किसी अन्य ऐप में * फोन * कॉल में है? पृष्ठभूमि में चल रहे स्काइप में एक कॉल की तरह? – progrmr
कृपया देखें http://stackoverflow.com/questions/3319805/detecting-call-state-in-ios4 –