0

私のアプリでは、MFMessageComposeViewControllerを使用してメッセージを送信しています。次のコードは、私がメッセージを送信するために使用した例です

        MFMessageComposeViewController *msgController = [[[MFMessageComposeViewController alloc] init] autorelease];
        if([MFMessageComposeViewController canSendText])
        {
            msgController.messageComposeDelegate = self;
            msgController.body = [NSString stringWithFormat:@"%@", appDelegate.finalConactStr ];
            [self presentModalViewController:msgController animated:YES];
        }

次のコードを使用して結果を確認しています

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{
    switch (result)
    {
    case MessageComposeResultCancelled:
        cancelAlert = [[UIAlertView alloc] initWithTitle:@"SMS a Contact" message:@"Cancelled"delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [cancelAlert show];
        [cancelAlert release];
        NSLog(@"Result: canceled");
        break;
    case MessageComposeResultSent:
        successAlert = [[UIAlertView alloc]initWithTitle:@"SMS a Contact" message:@"Successfully sent" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [successAlert show];
        [successAlert release];
        NSLog(@"Result: sent");
        break;
    case MessageComposeResultFailed:
        failAlert = [[UIAlertView alloc]initWithTitle:@"SMS a Contact" message:@"Failed" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [failAlert show];
        [failAlert release];

        NSLog(@"Result: failed");
        break;
    default:
        notSentAlert = [[UIAlertView alloc]initWithTitle:@"SMS a Contact" message:@"Not Sent" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [notSentAlert show];
        [notSentAlert release];

        NSLog(@"Result: not sent");
        break;
    }
    [self dismissModalViewControllerAnimated:YES];
 }

しかし、simがないと、Successfulsentのようなアラートが表示されます

デバイスにSIMがあるかどうか、またはメッセージ送信機能があるかどうかを確認するにはどうすればよいですか。誰でも私を助けたり提案したりできます。

前もって感謝します。

4

1 に答える 1

0

Apple が iMessage を導入して以来、iOS5 を実行できるすべてのデバイスが 経由でメッセージを送信できるようになりますMFMessageComposeViewController

したがって、デバイスに sim がインストールされているかどうかを実際に確認する必要はありません[MFMessageComposeViewController canSendText]。デバイスがメッセージを送信できるかどうかを確認するだけで信頼できます。

  • MessageComposeResultCancelled: ユーザーが合成をキャンセルしました。
  • MessageComposeResultSent: ユーザーは正常にキューに入れたか、メッセージを送信しました。
  • MessageComposeResultFailed: ユーザーがメッセージを保存または送信しようとして失敗しました。
于 2012-06-21T09:35:44.597 に答える