Есть ли способ сообщить, может ли устройство отправлять текстовые сообщения или просто iMessage? - PullRequest
3 голосов
/ 01 ноября 2011

У меня есть приложение, настроенное на отправку смс-сообщений в приложении на определенный номер. В viewDidLoad я проверяю, может ли устройство отправлять текстовые сообщения, используя [MFMessageComposeViewController canSendText], а затем скрываю элемент управления, если он не поддерживается устройством.

До сих пор это работало нормально, но сейчас я обновляю его для iOS 5 и обнаружил устройства, которые не поддерживают SMS, но поддерживают iMessage, получают сообщение YES от [MFMessageComposeViewController canSendText].

Поскольку получающий номер не является устройством iOS 5, все сообщения, отправленные в службе iMessage, не будут выполнены. Еще хуже то, что метод делегата messageComposeViewController: didFinishWithResult: сообщает MessageComposeResultSent, поэтому я даже не могу отобразить сообщение после события. Единственный раз, когда пользователь видит, что сообщение не было доставлено, - если он просматривает приложение обмена сообщениями, сообщения помечаются как «Не доставлено».

Итак, есть ли способ запросить у устройства информацию о том, может ли оно отправлять «настоящие» смс-сообщения или только что оно получило поддержку iMessage?

1 Ответ

5 голосов
/ 01 ноября 2011

Вы можете попытаться определить, может ли ваше текущее устройство выполнять вызовы, с помощью: [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString: @ "tel: //"]]

И если это возвращает ДА,вы знаете, что ваше устройство имеет модуль GSM / CDMA, это означает, что вы можете отправлять SMS.Если вы получили НЕТ, вы можете отправить только IMessage.

...