阻止Iphone iOS中的短信

时间:2013-02-27 16:06:03

标签: iphone ios objective-c jailbreak

使用应用程序时我想阻止所有来电和短信。它应该至少在越狱的iPhone上工作。我有这个阻止呼叫的代码,但不是短信 - 我该如何解决?

 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();

1 个答案:

答案 0 :(得分:0)

我认为你在下一行中做了一些语法错误,检查一下

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