Программная отправка iMessage с использованием частных фреймворков

Кто-нибудь знает, можно ли напрямую отправить iMessage, используя частную структуру?

Я пытался использовать CTMessageCenter от CoreTelephony, но он отправил SMS, хотя мой телефон может отправлять iMessages.


person Alexandre Blin    schedule 19.01.2012    source источник
comment
Добавлен тег джейлбрейка, вроде сюда подходит.   -  person Richard J. Ross III    schedule 19.01.2012


Ответы (2)


Я не проверял это, но посмотрите код, размещенный здесь< /а>. Если вы посмотрите на httpResponseForMethod:URI:, вы увидите, куда он/она отправляет сообщение (похоже, это жестко запрограммированный код для поддержки iOS 5 или iOS 4):

CKSMSService *smsService = [CKSMSService sharedSMSService];

//id ct = CTTelephonyCenterGetDefault();
CKConversationList *conversationList = nil;

NSString *value =[[UIDevice currentDevice] systemVersion];          
if([value hasPrefix:@"5"])
{
    //CKMadridService *madridService = [CKMadridService sharedMadridService];
    //NSString *foo = [madridService _temporaryFileURLforGUID:@"A5F70DCD-F145-4D02-B308-B7EA6C248BB2"];

    NSLog(@"Sending SMS");
    conversationList = [CKConversationList sharedConversationList];
    CKSMSEntity *ckEntity = [smsService copyEntityForAddressString:Phone];
    CKConversation *conversation = [conversationList conversationForRecipients:[NSArray arrayWithObject:ckEntity] create:TRUE service:smsService];
    NSString *groupID = [conversation groupID];           
    CKSMSMessage *ckMsg = [smsService _newSMSMessageWithText:msg forConversation:conversation];
    [smsService sendMessage:ckMsg];
    [ckMsg release];     
} else {
    //4.0
    id ct = CTTelephonyCenterGetDefault();
    void* address = CKSMSAddressCreateWithString(pid); 

    int group = [grp intValue];         

    if (group <= 0) {
        group = CKSMSRecordCreateGroupWithMembers([NSArray arrayWithObject:address]);       
    }

    void *msg_to_send = _CKSMSRecordCreateWithGroupAndAssociation(NULL, address, msg, group, 0);    
    CKSMSRecordSend(ct, msg_to_send);

}

Код использует обычное SMS, но вы можете увидеть следующий закомментированный код:

//CKMadridService *madridService = [CKMadridService sharedMadridService];

Служба «Мадрид», вероятно, может отправлять iMessages. См. закрытый заголовок здесь.

Частные API SMS и iMessage находятся в ChatKit.framework.

person Nate    schedule 14.06.2012
comment
@Enkidu, если вы посмотрите на теги вопросов, вы увидите, что это вопрос о побеге из тюрьмы. - person Nate; 29.09.2016
comment
я не спрашиваю я информирую. Я добавил тег джейлбрейка :) - person iosMentalist; 29.09.2016
comment
@Enkidu, на самом деле, мой первый ответ был неправильным. Ничего страшного, если вы определите, что этот ответ требует джейлбрейка для работы (я больше не могу тестировать, потому что API давно изменились). Но теги, применяемые к вопросу, должны отражать то, что спрашивает спрашивающий; они не должны быть отражением ответов. Итак, я оставлю ваш комментарий здесь как есть (хотя я не могу проверить его правильность), но тег джейлбрейка не должен применяться к вопросу, поскольку он не был частью того, что спросил спрашивающий. - person Nate; 30.09.2016

Через iPhone без джейлбрейка абсолютно нет доступа к iMessage CoreTelephony API

person Matt Aldridge    schedule 19.01.2012
comment
а как насчет взломанного телефона? - person Alexandre Blin; 20.01.2012
comment
Извините, что вам придется Google для. У меня нет опыта работы с взломанными телефонами. - person Matt Aldridge; 20.01.2012