gos*_*vka 11 sms objective-c jailbreak ios
我正在使用iOS 6 iphone 4S,我希望能够发送未被注意的短信.因此,在这种情况下使用标准视图控制器将不起作用.我试过用
- (BOOL)sendSMSWithText:(id)arg1 serviceCenter:(id)arg2 toAddress:(id)arg3;
但它不发送任何东西并返回NO.我使用nil作为arg2.
有人可以在iOS 6上建议一种方法吗?(对于越狱设备)
cre*_*ker 15
找出- (BOOL)sendSMSWithText:(id)arg1 serviceCenter:(id)arg2 toAddress:(id)arg3;自iOS 6以来无法正常工作的原因.
此API受权利保护com.apple.CommCenter.Messages-send.只需将此权利设置为true即可签署您的应用.这比我的另一个答案(XPC方法)要好得多,原因有两个:
sendSMSWithText 告诉你消息是否已成功发送sendSMSWithText未保存在SMS数据库中,无法在任何地方看到.另一方面,使用XPC方法发送的消息正保存在SMS数据库中,可以在消息应用程序中看到.所以,赢得胜利.我强烈建议删除XPC方法,因为它使用的是非常低级的API,可以在新的iOS版本中轻松更改.sendSMSWithText即使在iOS 7中也可以找到它,我认为它不会很快被删除.
UPDATE
要在iOS 7及更高版本上使用此API,您需要添加bool值设置为true的其他权利 - com.apple.coretelephony.Identity.get.
直接来自ChatKit.framework
dispatch_queue_t queue = dispatch_queue_create("com.apple.chatkit.clientcomposeserver.xpc_connection_queue", DISPATCH_QUEUE_SERIAL);
xpc_connection_t connection = xpc_connection_create_mach_service("com.apple.chatkit.clientcomposeserver.xpc", queue, 0);
xpc_connection_set_event_handler(connection, ^(xpc_object_t){});
xpc_connection_resume(connection);
dispatch_release(queue);
xpc_object_t dictionary = xpc_dictionary_create(0, 0, 0);
xpc_dictionary_set_int64(dictionary, "message-type", 0);
NSData* recipients = [NSPropertyListSerialization dataWithPropertyList:[NSArray arrayWithObject:@"12212"] format:NSPropertyListBinaryFormat_v1_0 options:0 error:NULL];
xpc_dictionary_set_data(dictionary, "recipients", recipients.bytes, recipients.length);
xpc_dictionary_set_string(dictionary, "markup", "SMS text");
xpc_connection_send_message(connection, dictionary);
xpc_release(dictionary);
recipients保存序列化的属性列表,其中包含您要向其发送短信的电话号码阵列 - 12212这只是电话号码的示例.而不是SMS text你应该把实际的SMS文本.不幸的是,我找不到检查SMS是否成功发送的方法.
要使用此代码发送消息,您的应用程序权利应该具有com.apple.messages.composeclient布尔值设置为true的键.否则,在控制台中会出现错误,说应用程序缺少权利.
| 归档时间: | 
 | 
| 查看次数: | 6079 次 | 
| 最近记录: |