2012-07-30 102 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