2013-03-13 48 views
4

我使用MFMesageComposeViewController來發送消息它是我創建問題。MFMessageComposeViewController:如何限制發送消息作爲蜂窩消息而不是iMessage

當我發送消息給多個收件人,它工作正常iMessages是啓用或禁用設置。但是,當我發送消息給單個聯繫人,並且iMessages從其設置啓用它給我「傳遞失敗」在消息應用程序並顯示它爲iMessage

我該如何強制MFMessageComposeViewController將它作爲手機短信發送。

我的代碼是:

[[[MFMessageComposeViewController alloc] init] autorelease]; 
if ([MFMessageComposeViewController canSendText]) { 
    controller.body = @"Sample Text Message"; 
    controller.recipients = [NSArray arrayWithObject:@"XXXXXXXXXXXX"]; 
    controller.messageComposeDelegate = self; 
    } 

回答

2

總之 - 你不能。如果在設備上啓用了iMessage並且收件人可用作iMessage客戶端,則該消息將作爲iMessage發送。這個行爲是由iOS本身定義的,你不能改變它。

+1

不,我正在測試這些未註冊爲Apple ID或iMessage ID的號碼 – 2013-03-13 07:27:46

+0

沒關係。在您的代碼中,您還無法確定手機號碼的狀態 - 是iMessage還是僅限蜂窩電話客戶端。 – 2013-03-13 07:31:43

+1

我認爲這可能是最新版本的iOS中的一個錯誤,因爲之前如果我爲我的培訓時間發送'SMS',它會將SMS發送給非iMessage用戶,現在它將作爲iMessage發送,而不管收件人是否具有iMessage或不。我必須進入消息,並重新發送爲SMS。 – 2013-03-13 13:15:47

1

Apple不提供任何方法來檢測郵件是以「iMessage」還是「SMS」的形式發送。

此外,如果您沒有連接到互聯網,您的信息將不會作爲iMessage發送。如果您的互聯網連接速度較慢,您的信息將自動作爲短信發送。

如果收件人可用作iMessage客戶端,並且在您的設備上啓用了iMessage,則您的郵件將作爲iMessage發送。如果在那個時候,你沒有連接到互聯網,那麼'發送'按鈕將被自動禁用。