如何在iPhone越狱代码中阻止传入的短信

在问这个问题之前我搜索了SO,没有满足我需求的答案.

所以这是我的要求,

我有这段代码用于检测传入的SMS,但它没有说明如何转储这些消息.我已经成功阻止了来电但是对于消息我不知道该怎么做.这里的任何帮助将非常感谢.

我可以使用任何私有API.

if ([notifyname isEqualToString:@"kCTSMSMessageReceivedNotification"])
{
    if ([[(NSDictionary *)userInfo allKeys]
         containsObject:@"kCTSMSMessage"]) // SMS Message
    {
        CTSMSMessage *message = (CTSMSMessage *)
        [(NSDictionary *)userInfo objectForKey:@"kCTSMSMessage"];
        NSString *address = CTSMSMessageCopyAddress(NULL, message);
        NSString *text = CTSMSMessageCopyText(NULL, message);
        //NSArray *lines = [text componentsSeparatedByString:@"\n"];
        printf(" %s %s\n", [address UTF8String],[text UTF8String]);
        //printf(" %s\n", [text cString]);
        fflush(stdout);

    }
}
else if ([notifyname isEqualToString:@"kCTMessageReceivedNotification"])//received SMS
{
    /*
     kCTMessageIdKey = "-2147483636″;
     kCTMessageTypeKey = 1;
     */

    NSDictionary *info = (NSDictionary *)userInfo;
    CFNumberRef msgID = (CFNumberRef)
; int result; CFNumberGetValue((CFNumberRef)msgID, kCFNumberSInt32Type, &result); /* Class CTMessageCenter = NSClassFromString(@"CTMessageCenter"); id mc = [CTMessageCenter sharedMessageCenter]; id incMsg = [mc incomingMessageWithId: result]; int msgType = (int)[incMsg messageType]; if (msgType == 1) //experimentally detected number { id phonenumber = [incMsg sender]; NSString *senderNumber = (NSString *)[phonenumber canonicalFormat]; id incMsgPart = [[incMsg items] objectAtIndex:0]; NSData *smsData = [incMsgPart data]; NSString *smsText = [[NSString alloc] initWithData:smsData encoding:NSUTF8StringEncoding]; } */ }

谢谢
纳文

最佳答案 你的问题不够明确.您是否希望将它们完全删除,以便它们甚至不在消息应用程序(和数据库)中,或者您只是希望SpringBoard不通知用户传入的消息?

对于第一个,您将必须挂钩实际发送您正在您的代码片段中收听的通知的进程.我很确定你必须修补imagent(/System/Library/PrivateFrameworks/IMCore.framework/imagent.app/imagent).

对于第二个,你必须在SpringBoard中玩.由于iOS 5.0 BulletinBoard正在处理对用户的通知,因此您可以在那里阻止它. (你可能想看一下这是一个BulletinBoard插件的SMSBBPlugin).

或者只是启动您选择的反汇编程序,看看像biteSMS这样的调整是如何做的;)

请记住,越狱调整开发有时需要大量的逆转和修补,大多数人会将自己的大部分发现留给自己.

点赞