越狱手机发送短信

http://stackoverflow.com/questions/19175209/sending-sms-using-ctmessagecenter-ios-7

 

下面的代码在IOS7上面无效,经过一番搜索,解决方案如下。亲测试有效。

I am trying to send sms programmatically using private API. My phone is not jailbroken.

BOOL success = [[CTMessageCenter sharedMessageCenter] sendSMSWithText:@"test 1234..." serviceCenter:nil toAddress:@"0777888888"]; if(success){ NSLog(@"Message SENT"); }else{ NSLog(@"Message not SENT"); }

This code always prints "Message not SENT". Can anyone help me ?

 

 

I guess, you have to write the telephone number in E.123 international notation. So add plus sign and country code. For a phone number is USA replace the leading 0 with +1:

[[CTMessageCenter sharedMessageCenter] sendSMSWithText:@"test 1234..." serviceCenter:nil toAddress:@"+1777888888"];

For a phone number is Sri Lanka use the appropriate country code +94.

UPDATE

I've tested old working iOS 5 code under iOS 7... sendSMSWithText:serviceCenter:toAddress:returns NO. The same while using the new method sendSMSWithText:serviceCenter:toAddress:withMoreToFollow:

Panagiotis' suggestion seems correct :-/

UPDATE 2

http://stackoverflow.com/a/20425853/2270880 gives the right answer.

Under iOS 7 the app needs two entitlements com.apple.CommCenter.Messages-send andcom.apple.coretelephony.Identity.get. Adding additional entitlements via file appname.entitlements (and set in target's Build Settings > All > Code Signing > Code Signing Entitlements) give you the error

The entitlements specified in your applications Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).

on non-jailbroken devices.

你可能感兴趣的:(短信)