2012-05-15 15 views
6

ユーザーが画面上のボタンを押すと、特定の番号にSMSメッセージを自動的に送信しようとしています。Androidはボタンをクリックすると自動的にSMSを送信します

これは私のコードです:

Intent smsIntent = new Intent(Intent.ACTION_SENDTO, 
Uri.parse("sms:xxxxxxxxxxx")); 
smsIntent.putExtra("sms_body", "Hello"); 
startActivity(smsIntent); 

XXXXXXX =電話番号

私は次の権限を持っている:私はボタンを押すと

<uses-permission android:name="android.permission.SEND_SMS"></uses-permission> 
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 

それは私別の画面に私を取りますテキストを編集して[送信]を押すことができます。私は別の画面に私を連れて行くことなく自動的にこのプロセスを実行したい。私のメッセージはすでに定義されているので、特定の番号に送信したいだけです。

また、コードの2行目に丁重な電話番号を入力するかどうかはわかりません。最初に国番号を入力する必要がありますか、または携帯電話番号を入力すれば動作しますか?

+0

私はこれと似たようなことをしています! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

答えて

17

このコードを試してみてくださいありがとう:数に関して

String messageToSend = "this is a message"; 
String number = "2121234567"; 

SmsManager.getDefault().sendTextMessage(number, null, messageToSend, null,null); 

、あなたは携帯電話からそれを呼び出すか、通常でSMSメッセージを送信したかのように番号を入力する必要があります方法。

buttonSendSms_intent.setOnClickListener(new Button.OnClickListener(){ 

     @Override 
     public void onClick(View arg0) { 
     // TODO Auto-generated method stub 

     String smsNumber = edittextSmsNumber.getText().toString(); 
     String smsText = edittextSmsText.getText().toString(); 

     Uri uri = Uri.parse("smsto:" + smsNumber); 
     Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
     intent.putExtra("sms_body", smsText); 
     startActivity(intent); 
     }}); 
+0

これは完全に機能しました。どうもありがとうございます! – Alex

+0

ありがとうございました..それは私を助けました – Noman

+0

@chris私はあなたのコードを使用していますが、私の番号でSMSを受け取ることができません。私が入れている番号 –

2

はあなたにもテントでビルドを使用することができ、この

private static final String SMS_SENT_INTENT_FILTER = "com.yourapp.sms_send"; 
private static final String SMS_DELIVERED_INTENT_FILTER = "com.yourapp.sms_delivered"; 

String message = "hey, this is my message"; 

String phnNo = " " //preferable use complete international number 

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(
       SMS_SENT_INTENT_FILTER), 0); 
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(
       SMS_DELIVERED_INTENT_FILTER), 0); 

SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(phnNo, null, message, sentPI, deliveredPI); 
3

を試してみてください。

+0

この問題は、 'Intent.ACTION_SENDTO'アクションを処理できる複数のアクティビティがある場合、ピッカーが表示され、ユーザがSMSを送信するアプリを選択できるようになります(そのため、人間の介入が必要です) 。 OPは、私が想定している人間の介入なしに自動的にそれをしたいと思っていました。 – CapturedTree

2

簡単な方法はSmsManager.Telephonyを使用することです:

関連する問題