检查短信发送状态iPhone

时间:2011-08-11 16:30:02

标签: iphone sms

可以检查短信发送状态吗? e.g。

MFMessageComposeViewController * smsPicker = [[MFMessageComposeViewController alloc] init];

smsPicker.messageComposeDelegate = self;

smsPicker.body = @"Body";

[self presentModalViewController:smsPicker animated:YES];

[smsPicker release];

我不知道为什么,但代表      - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result;在发送之前执行,如果用户取消了SMS,则可以正常工作。

我需要知道,如果短信发送或失败(例如小区网络错误或出现问题)。感谢您将来的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用result参数messageComposeViewController:didFinishWithResult:来检查邮件的状态。它的类型是MessageComposeResult

enum MessageComposeResult {
   MessageComposeResultCancelled,
   MessageComposeResultSent,
   MessageComposeResultFailed
};

请记住MessageComposeResultSent只能被解释为成功排队邮件以便以后发送。当设备能够发送时,将发生实际发送。


  

如何检查设备是否能够发送?

要测试设备是否能够发送短信,请使用MFMessageComposeViewController的{​​{3}}类方法。根据文档,在尝试呈现消息撰写视图控制器之前,应始终调用此方法。

但是,这不会告诉您设备是否能够立即发送消息(如果您在考虑此声明的情况下:当设备为时,将发生实际发送能够发送)。

答案 1 :(得分:1)

不幸的是,它至少没有考虑到网络中断。例如,在飞行模式下,代表收到MessageComposeResultSent

我已为this提交了雷达。复制它可能会更快解决问题。