2013-02-27 29 views
-2

使用應用時,我想阻止所有來電和短信。它應該至少在越獄iphone上工作。我有這個代碼阻止了電話,但不是短信 - 我該如何解決這個問題?Iphone中的阻止短信iOS

importCoreTelephony/CoreTelephonyDefines.h> 

extern NSString const *kCTSMSMessageReceivedNotification; extern 
NSString const *kCTSMSMessageReplaceReceivedNotification; extern 
NSString const *kCTSIMSupportSIMStatusNotInserted; extern NSString 
const *kCTSIMSupportSIMStatusReady; 

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

void * CTSMSMessageSend(id server,id msg); typedef struct 
__CTSMSMessage CTSMSMessage; NSString *CTSMSMessageCopyAddress(void *, CTSMSMessage *); NSString *CTSMSMessageCopyText(void *, CTSMSMessage 
*); 

int CTSMSMessageGetRecordIdentifier(void * msg); NSString * 
CTSIMSupportGetSIMStatus(); NSString * 
CTSIMSupportCopyMobileSubscriberIdentity(); 

id CTSMSMessageCreate(void* unknow/always 0/,NSString* 
number,NSString* text); void * CTSMSMessageCreateReply(void* 
unknow/always 0/,void * forwardTo,NSString *text); 

id CTTelephonyCenterGetDefault(void); void 
CTTelephonyCenterAddObserver(id, id, CFNotificationCallback, NSString 
*, void ,int); void CTTelephonyCenterRemoveObserver(id,id,NSString,void*); int 
CTSMSMessageGetUnreadCount(void); 

void * CTCallDisconnect(CTCall *call); 

static void callback(CFNotificationCenterRef center, void *observer, 
CFStringRef name, const void *object, CFDictionaryRef userInfo) { 

NSString *notifyname = (__bridge NSString *)name; 

if ([notifyname 
isEqualToString:@"kCTCallIdentificationChangeNotification"]) { 

    NSDictionary *info = (__bridge NSDictionary *)userInfo; 

    CTCall *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"]; 

    NSString *caller = CTCallCopyAddress(NULL, call); 

    NSLog(@"RECEIVED CALL: %@", caller); 

    CTCallDisconnect(call); 

} } 

static void signalHandler(int sigraised) { 

printf("\nInterrupted.\n"); exit(0); } 

在viewDidLoad中:

id ct = CTTelephonyCenterGetDefault(); 
CTTelephonyCenterAddObserver(ct, NULL, callback, NULL, NULL, 
CFNotificationSuspensionBehaviorHold); 

sig_t oldHandler = signal(SIGINT, signalHandler); if (oldHandler == 
SIG_ERR) { 

printf("Could not establish new signal handler"); exit(1); } 

printf("Starting run loop and watching for notification.\n"); 
CFRunLoopRun(); 
+0

請在這裏張貼之前格式化你的代碼工作。閱讀這個非常困難,而且你明顯已經做了一些剪切和粘貼錯誤。謝謝。 – Nate 2013-02-28 02:12:13

回答

0

我認爲你必須在下面一行做了一些syntatical錯誤,檢查

 id CTSMSMessageCreate(void* unknow/*always 0*/,NSString* number,NSString* text); 
void * CTSMSMessageCreateReply(void* unknow/*always 0*/,void * forwardTo,NSString *text);