iOS以编程方式更改SMSC

Nex*_*s2k 1 iphone sms ios

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

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

fbe*_*rdo 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
Run Code Online (Sandbox Code Playgroud)

例:

#import "CTMessageCenter.h"

BOOL success = [[CTMessageCenter sharedMessageCenter]  sendSMSWithText:@"test" serviceCenter:serviceCenterNumberAsString toAddress:numberAsString];
Run Code Online (Sandbox Code Playgroud)