【问题标题】:Sending MMS on iPhone using CoreTelephony使用 CoreTelephony 在 iPhone 上发送彩信
【发布时间】:2012-07-28 04:54:29
【问题描述】:

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

【问题讨论】:

  • 你用这种方式发送彩信了吗?尝试将 CTMessage 转换为 CTMessageCenter 可以通过 sendMMS 或其他方式发送的内容时,我总是会出错。任何帮助都会很棒

标签: iphone ios mms iphone-privateapi core-telephony


【解决方案1】:

对于那些感兴趣的人:这是我设法挖掘的内容(和/或我自己拼凑)。

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

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

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

这几乎总结了它,并且应该为任何想要沿着这条道路前进的人提供一个很好的起点,具体取决于他们正在做什么。我可以尽力回答任何问题。

【讨论】:

  • 你用这种方式发送彩信了吗?尝试将 CTMessage 转换为 CTMessageCenter 可以通过 sendMMS 或其他方式发送的内容时,我总是会出错。任何帮助都会很棒
  • 所以,我建议您考虑捕获实时彩信,例如给自己发一份,然后分解它的每一部分。 decodeMMS 将让您了解非文本数据字段的编码方式。修改消息字段,瞧!你要做的工作要少得多。我能够使用 CTMessageCenter 的 send() 发送彩信
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
相关资源
最近更新 更多