MFMessageComposeViewController: как ограничить отправку сообщения как сообщения сотовой связи, а не как iMessage

Я использую MFMesageComposeViewController отправить сообщение это создает проблемы для меня.

Когда я отправляю сообщение нескольким получателям, это прекрасно работает, независимо от того, включены ли 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, вы не можете его изменить.

Apple не предоставляет никаких методов для определения того, отправлено ли сообщение как "iMessage" или "SMS".

Кроме того, ваше сообщение не будет отправлено как iMessage, если вы не подключены к Интернету. Если у вас медленное подключение к Интернету, ваше сообщение будет автоматически отправлено в виде SMS.

Если получатель доступен как клиент iMessage и iMessage включен на вашем устройстве, то ваше сообщение будет отправлено как iMessage. И если в это время вы не подключены к Интернету, то кнопка "Отправить" будет автоматически отключена.

Другие вопросы по тегам