iOS以编程方式更改SMSC

时间:2012-03-19 17:28:44

标签: iphone ios sms

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

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

2 个答案:

答案 0 :(得分:7)

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

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

<强> CTMessageCenter.h:

#import <Foundation/Foundation.h>

@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];

答案 1 :(得分:2)

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

在iOS上,您可以使用私有框架SKTelephonyController。

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

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