2012-01-21 14 views

答えて

2

3つは、MFMessageComposeViewControllerを使用してSMSを事前ビルドする方法です。この方法の唯一の問題は、(デフォルトの方法で電子メールを送信するウィンドウのような)SMSを受け入れるためのモーダルビューがユーザーに表示されることです。脱獄せずに「サイレントモード」でSMSを送信する方法はありません。

{  
... 
[self sendSMS:@"_SMS_TEXT_" recipientList:[NSArray arrayWithObjects:@"PHONE_NUMBER", nil]]; 
... 
} 

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients 
{ 
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = bodyOfMessage;  
     controller.recipients = recipients; 
     controller.messageComposeDelegate = self; 
     [self presentModalViewController:controller animated:YES]; 
    }  
} 

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{ 
    [self dismissModalViewControllerAnimated:YES]; 

    if (result == MessageComposeResultCancelled) 
     NSLog(@"Message cancelled") 
    else if (result == MessageComposeResultSent) 
     NSLog(@"Message sent") 
    else 
     NSLog(@"Message failed") 
} 
5

あなたが言及した理由のために、それは可能ではありません。それはスパムを可能にするでしょう。

3

あなたのためにSMSを処理するサーバーと、そのサーバーと対話するためのAPIが必要です。あなたのアプリが電話から直接メッセージを送信することはできませんが、あなたのアプリがメッセージを送信する外部サービスとやりとりすることは確かです。

+1

このような外部サービスは、電話番号からのメッセージではなくサービスからのメッセージを送信することに注意してください。 – ceejayoz

+0

@ceejayozそしてその時点で、あなたは本質的にGoogleの音声(と他のサービスが行うこと)をして、ユーザーにSMSの代理番号を与える。 –

関連する問題