2012-07-30 68 views
4

我有兴趣在iPhone上的私人应用程序内发送彩信。我需要的很多信息都是专有的,因此我无法在任何地方找到它。基本上,我正在寻找构建CTMessage并将其编码为MMS的正确方法,然后通过其中一个重载的sendMMS函数发送它。提前致谢。使用CoreTelephony在iPhone上发送彩信

+0

您是否设法以此方式发送彩信? 当我尝试在CTMessageCenter可以通过sendMMS发送的东西中转换我的CTMessage时,我总是会收到错误。 任何帮助都会很棒 – Vassily 2012-10-02 16:29:24

回答

5

对于那些感兴趣的人:这里是我设法挖掘(& /或自己一块)。

对于每个MMS,CTMessage被分配&初始化。调用addRecipient/setRecipient来做到这一点。

对于每个数据/文本部分,CTMessagePart用其数据和相应的数据类型构建,然后添加到CTMessage的项目数组中。每个MMS项目数组中的第一个项目始终是一个包含SMIL格式布局的CTMessagePart,接收方会解析该布局以显示消息。第一个之后的每个CTMessagePart按照从SMIL数据引用的顺序排列。

每个(未修改的)iPhone都有一个运行CTMessageCenter的实例,ID为sharedMessageCenter。调用sharedMessageCenter的sendMMS,给出您刚刚创建的CTMessage的id会自动执行剩下的过程。实质上,CTMessage使用CTMmsEncoder编码成MMS-PDU十六进制字符串。 (不确定它的正确名称,哈哈)。无论如何,sharedMessageCenter的发送方法将发送(编码)MMS到您的提供商的MMSC。

这几乎总结了它,并应该让任何人都希望沿着这条道路前进一个好地方,根据他们在做什么。我可以尽力回答任何问题。

+0

您是否设法以此方式发送彩信?在CTMessageCenter可以通过sendMMS或其他方式发送CTM消息时,我总是会遇到错误。任何帮助将会很棒 – Vassily 2012-10-02 16:33:34

+0

所以,我建议你看看捕捉一个现场彩信,例如,给自己一个,然后分解它的每一部分。 decodeMMS将为您提供有关非文本数据字段如何编码的信息。修改消息字段,瞧!你的工作要少得多。我能够使用CTMessageCenter的send()发送MMS消息 – 2012-10-10 16:11:00