2011-09-06 106 views
13

我希望能夠選擇性地阻止我正在寫入的iOS應用程序中的傳入呼叫。這是爲了個人使用,而不是App Store,所以我很擅長使用私有API來實現這一點。如何使用私有API在iOS應用程序中阻止傳入呼叫?

我最近遇到了核心電話框架。有沒有辦法使用這個框架來阻止呼叫?如果沒有,我可以用什麼私人API來做到這一點?

回答

35

你確定它沒有? http://tech.ruimaninfo.com/?p=83上的代碼示例顯示瞭如何做這樣的事情。 SDK中的核心電話標題不完整。 當然,這意味着沒有應用程序商店 這是基於例如我的代碼片段我聯繫

if ([str1 isEqualToString:@"kCTCallIdentificationChangeNotification"]) 
{ 
    NSDictionary *info = (__bridge NSDictionary *)userInfo; 
    CTCall2 *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"]; 
    NSString *caller = CTCallCopyAddress(NULL, call); 
    NSLog(@"Caller %@",caller); 
    if ([caller isEqualToString:@"+1555665753"]) 
    { 
     //disconnect this call 
     CTCallDisconnect(call); 

} 

附加定義需要:

typedef struct __CTCall CTCall; 
extern NSString *CTCallCopyAddress(void*, CTCall *); 
extern void CTCallDisconnect(CTCall*); 

,你需要監控的電話中心的回調(見鏈接的例子) 我在iOS5設備上測試了這個片段

+0

我不,我不能把它放在App Store上,但是如何使用這個鏈接來阻止一個特定的號碼? –

+0

我更新了我的答案 – dkzm

+0

還沒有,我沒有看到任何更改:/ –

3

核心電話不支持這一點。據我所知,沒有辦法用任何已知的私有API來做到這一點。

+3

iBlackList和MCaller如何做到這一點? –

+1

@ H2CO3,我在哪裏說「這是不可能的」? –

+2

@GregMartin「據我所知,任何已知的私有API都無法做到這一點。」 – 2013-02-12 21:44:07

相關問題