iOS以编程方式更改SMSC

我正在编写一个应用程序,可以测试运营商的不同SMSC(短消息服务中心)。 因此,我需要更改iPhone用于发送短信的SMSC。 这样做有没有办法?

Android提供了一个以SMSC为参数的sendMessage方法,在iOS中是否有相同的function? 我不在乎它是否使用私有API调用,因为我不会发布我的应用程序(仅用于内部测试目的)。 任何帮助表示感谢,谢谢。

此解决方案适用于非越狱手机,但它不会进入应用程序商店。 它使用私有API,它与Android的sendMessage的描述非常相似。

您必须将项目链接到CoreTelephony框架(现在公开),并创建下面描述的标题。 还包含了例子。

CTMessageCenter.h:

#import  @interface CTMessageCenter : NSObject { } + (id)sharedMessageCenter; - (id)init; - (id)sendSMS:(id)fp8; - (id)sendMMSFromData:(id)fp8 messageId:(unsigned int)fp12; - (id)sendMMS:(id)fp8; - (id)send:(id)fp8; - (id)incomingMessageWithId:(unsigned int)fp8 telephonyCenter:(struct __CTTelephonyCenter *)fp12 isDeferred:(BOOL)fp16; - (int)incomingMessageCount; - (id)allIncomingMessages; - (void)acknowledgeIncomingMessageWithId:(unsigned int)fp8; - (void)acknowledgeOutgoingMessageWithId:(unsigned int)fp8; - (id)incomingMessageWithId:(unsigned int)fp8; - (id)deferredMessageWithId:(unsigned int)fp8; - (id)statusOfOutgoingMessages; - (id)encodeMessage:(id)fp8; - (id)decodeMessage:(id)fp8; - (BOOL)isMmsEnabled; - (BOOL)isMmsConfigured; - (BOOL)sendSMSWithText:(id)fp8 serviceCenter:(id)fp12 toAddress:(id)fp16; @end 

例:

 #import "CTMessageCenter.h" BOOL success = [[CTMessageCenter sharedMessageCenter] sendSMSWithText:@"test" serviceCenter:serviceCenterNumberAsString toAddress:numberAsString]; 

您需要使用AT命令更新SIM卡上的SMSC。

在iOS上,您可以使用Private Framework SKTelephonyController。

AT Command获取SIM卡上的当前SMSC:AT + CSCA?

写入SIM卡:AT + CSCA =“1xxxxxxxxxx”,145