可以检查短信发送状态吗? 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,则可以正常工作。
我需要知道,如果短信发送或失败(例如小区网络错误或出现问题)。感谢您将来的帮助!
答案 0 :(得分:1)
您可以使用result
参数messageComposeViewController:didFinishWithResult:
来检查邮件的状态。它的类型是MessageComposeResult:
enum MessageComposeResult {
MessageComposeResultCancelled,
MessageComposeResultSent,
MessageComposeResultFailed
};
请记住MessageComposeResultSent
只能被解释为成功排队邮件以便以后发送。当设备能够发送时,将发生实际发送。
如何检查设备是否能够发送?
要测试设备是否能够发送短信,请使用MFMessageComposeViewController
的{{3}}类方法。根据文档,在尝试呈现消息撰写视图控制器之前,应始终调用此方法。
但是,这不会告诉您设备是否能够立即发送消息(如果您在考虑此声明的情况下:当设备为时,将发生实际发送能够发送)。
答案 1 :(得分:1)
不幸的是,它至少没有考虑到网络中断。例如,在飞行模式下,代表收到MessageComposeResultSent
!
我已为this提交了雷达。复制它可能会更快解决问题。