2013-02-27 94 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);