2013-09-23 5 views
8

हमारे उद्यम iOS एप्लिकेशन में हमआईओएस 7 सीटीकॉल के विकल्प?

CTCallRef CTCallDial(CFStringRef number); 

इस्तेमाल किया ऐप्लिकेशन से कैसे कॉल करें (और फोन करने वाले-आईडी

यह आईओएस 7 में काम करने के लिए प्रतीत नहीं होता है को छिपाने के लिए सक्षम होने के लिए बदल एपीआई है वहाँ?

(मैं पूरी तरह से पता है कि यह एक निजी API कॉल और है कि यह कभी भी बदल सकते है, लेकिन मैं अभी भी एक विकल्प खोजने के लिए उम्मीद कर रहा हूँ। दुर्भाग्य से मैं काफी समझ रखने वाले सभी लगाने के लिए कैसे पता करने के लिए नहीं कर रहा हूँ निजी एपीआई जो उपलब्ध है)

+0

निजी ओबीजे-सी एपीआई का निरीक्षण करने के लिए 'क्लास-डंप' या 'क्लास-डंप-जेड' डाउनलोड करें। – Nate

उत्तर

2

मैंने पूछा stackoverflow में यहाँ एक ही सवाल 2 घंटे अपनी पोस्ट के बाद ... वर्ग डंप पर एक पहले देखो (https://github.com/EthanArbuckle/IOS-7-Headers/blob/master/Frameworks/CoreTelephony.framework/CTCall.h) से पता चलता है, कि इस समारोह याद आ रही है ...

+0

TUCallCenter की शीर्षलेख फ़ाइल में (https://github.com/EthanArbuckle/IOS-7-Headers/blob/master/PrivateFrameworks/TelephonyUtilities.framework/TUCallCenter.h) "- (id) डायल नामक एक फ़ंक्शन है: (आईडी) arg1 सेवा: (int) arg2 "लेकिन मुझे TUCallcenter का एक उदाहरण नहीं मिल सकता क्योंकि साझाInstance शून्य देता है। – ErdyMurphy

+0

मैंने गलती की ... साझा किया गया डस्ट रिटर्न शून्य ... – ErdyMurphy

+0

लेकिन जब मैं [टीयूकॉल सेंटर साझा किया गया] कॉल करता हूं] डायल करें: @ "123" सेवा: 0]; मुझे सीटीकॉलडिअल() – ErdyMurphy

-1

आप उपयोग कर सकते

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: [NSString stringWithFormat: @ "tel:% @", num]]];

लेकिन आप बंद नहीं कॉल स्क्रीन कॉल समाप्त

+0

में जाने का तरीका हो सकता है जैसा कि @ErdyMurphy ने दूसरे उत्तर में उल्लेख किया है, यह विधि टेलीफोन ऐप पर नियंत्रण अनुक्रम भेजने की अनुमति नहीं देती है। कॉलर-आईडी छिपाने के लिए आपको किसकी आवश्यकता है। – clows

0

असल में मैं vualoaithu के रूप में ही करने की कोशिश की और कोई भाग्य मिल गया है सकते हैं। लेकिन मैंने TUCallCenter ऑब्जेक्ट के अन्य तरीकों का उपयोग करने का भी प्रयास किया है और ऐसा लगता है कि यह ठीक काम करता है। उदाहरण के लिए निम्न विधि का काम करता है:

TUCallCenter *callCenter = [TUCallCenter sharedInstance]; 
if(callCenter) { 
    NSLog(@"callCenter is created!"); 
    //Working part 
    if([callCenter inCall]){ 
     NSLog(@"IN CALL"); // when you press answer button and can talk 
    }else{ 
     NSLog(@"NOT IN CALL"); // other cases 
    } 
} 

इसके अलावा, मैं कोशिश की है निम्नलिखित:

TUPhoneNumber* phoneNumber = 
    [TUPhoneNumber phoneNumberWithDigits:@"55555555" 
          countryCode:@"1"]; 
if(phoneNumber) { 
    NSLog(@"Phone Number obj = %@",phoneNumber); 
    NSLog(@"Phone Number = %@",phoneNumber.digits); 
    NSLog(@"Country Code = %@",phoneNumber.countryCode); 
} 
[callCenter dial:phoneNumber service:0]; 

लेकिन मैं अपवाद है:

[TUPhoneNumber लंबाई]: गैर मान्यता प्राप्त चयनकर्ता उदाहरण के लिए भेजा 0x14dcefd0

ऐसा लगता है कि हम रास्ते पर हैं। अगर कोई समाधान मिलेगा। कृपया इसे यहां पोस्ट करें। धन्यवाद।

3

मुझे लगता है कि आपको com.apple.coretelephony.Calls.allow एंटाइटेलमेंट के साथ अपने ऐप पर हस्ताक्षर करने की आवश्यकता है। मैंने इसे स्प्रिंगबोर्ड बाइनरी में पाया। ऐप्पल ने नए एंटाइटेलमेंट का पूरा समूह जोड़ा। तो हमें उम्मीद करनी चाहिए कि कई एपीआई उनके बिना काम नहीं करेंगे। केवल CoreTelephony के लिए स्प्रिंगबोर्ड में चार एंटाइटेलमेंट हैं।

+0

मैं पुष्टि कर सकता हूं कि 'com.apple.coretelephony.Calls.allow' समाधान है। इस हकदारता के बिना आप 'CTCallDial' के साथ कॉल नहीं कर सकते हैं। – creker

+0

मुझे स्प्रिंगबॉर्ड सर्विसेज, स्प्रिंगबार्ड फाउंडेशन, स्प्रिंगबार्डयूआई, स्प्रिंगबार्ड यूआईएसवीर्सेस के लिए क्लास-डंप का इस्तेमाल किया गया था।** लेकिन com.apple.coretelephony.Calls.allow ** यह कहां नहीं है ???? मेरी मदद करें – vualoaithu

+1

मैं 'SpringBoard.app/SpringBoard' बाइनरी के बारे में बात कर रहा था। आप इसे अपने डिवाइस पर '/ System/Library/CoreServices/SpringBoard.app/SpringBoard' या आईओएस सिम्युलेटर में' Xcode.app/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0 पर ढूंढ सकते हैं। एसडीके/सिस्टम/लाइब्रेरी/कोर सर्विसेज/स्प्रिंगबोर्ड। ऐप/स्प्रिंगबोर्ड '। किसी भी टेक्स्ट एडिटर के साथ बाइनरी खोलें और अंत तक स्क्रॉल करें। आपको कई एंटाइटेलमेंट मिलेगा जिनमें से com.apple.coretelephony.Calls.allow' – creker