2011-03-05 80 views
4

我在我的应用程序中使用以下代码来创建并填充用户发送的短信。这个代码是通过按UIButton来调用的。iPhone短信功能

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = @"Hello from Mugunth"; 
     controller.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil]; 
     controller.messageComposeDelegate = self; 
     [self presentModalViewController:controller animated:YES]; 
    } 

在初始加载视图时,我想测试设备功能,并在必要时隐藏按钮(例如在iPod touch上)。

有没有人有关于如何做到这一点的任何代码示例?请注意,我只针对iOS 4.0及更高版本,我知道上面的代码在使用早期版本iOS的设备上不起作用。

问候

+0

[MFMessageComposeViewController canSendText]是否照顾我需要的功能?我没有iPod touch设备进行测试。 – 2011-03-05 22:19:11

回答

4

[MFMessageComposeViewController canSendText]将决定你是否是该设备可以发短信。我已经知道它会在iPhone,SIM卡,iPod Touch和iOS模拟器上正确反应。我没有在例如没有SIM卡或iPad的iPhone。

+0

谢谢我一样想。已接受你的答案。 – 2011-03-05 22:54:51

2

您可以使用下面的代码来检测设备是否可以发送短信或不:

首选:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"sms:"]]) { 

} 

[MFMessageComposeViewController canSendText] 
0

,请务必让[MFMessageComposeViewController canSendText]分配之前一个MFMessageComposeViewController的实例。较新版本的iOS会发出警告,通知用户他们无法在实例化MFMessageComposeViewController后立即发送消息。