我正在编写一个可以测试来自运营商的不同SMSC(短消息服务中心)的应用程序。因此,我需要更改iPhone用于发送SMS的SMSC。有办法吗?
Android提供了带有SMSC作为参数的sendMessage方法,iOS中是否有等效方法?我不在乎它是否使用 private API调用,因为我还是不会发布我的应用程序(仅出于内部测试目的)。任何帮助表示赞赏,谢谢。
最佳答案
此解决方案可在非越狱手机上使用,但不会进入应用商店。
它使用 private 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];
关于iphone - iOS以编程方式更改SMSC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774919/