10

ユーザーが画面上のボタンを押したときに、特定の番号に 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 行目に正しい電話番号を入力したかどうかもわかりません。最初に国コードを入力する必要がありますか、それとも携帯電話番号を入力するだけで機能しますか?

ありがとうございました

4

5 に答える 5

20

このコードを試してください:

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

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

番号に関しては、電話から電話をかけたり、通常の方法でSMSメッセージを送信したりする場合と同じように番号を入力する必要があります.

于 2012-05-15T19:21:30.600 に答える
3

インテントのビルドも使用できます。

 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);
       }});
于 2012-05-15T19:30:17.980 に答える
2

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

于 2012-05-15T19:32:02.710 に答える
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);
于 2012-05-15T19:26:50.497 に答える