Comment envoyer un SMS sous Android

Comment envoyer un SMS dans Android

Sous Android, vous pouvez utiliser l'APISmsManager ou l'applicationBuilt-in SMS de l'appareil pour envoyer un message SMS. Dans ce tutoriel, nous vous montrons deux exemples de base pour envoyer un SMS:

  1. API SmsManager

        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
  2. Application SMS intégrée

        Intent sendIntent = new Intent(Intent.ACTION_VIEW);
        sendIntent.putExtra("sms_body", "default content");
        sendIntent.setType("vnd.android-dir/mms-sms");
        startActivity(sendIntent);

Bien sûr, les deux ont besoin de la permission deSEND_SMS.

P.S This project is developed in Eclipse 3.7, and tested with Samsung Galaxy S2 (Android 2.3.3).

Note
La solution d'application SMS intégrée est le moyen le plus simple, car vous laissez l'appareil gérer tout pour vous.

1. Exemple SmsManager

Fichier de mise en page Android vers les zones de texte (numéro de téléphone, message sms) et bouton pour envoyer le message SMS.

Fichier: res / layout / main.xml




    

    
    

    

    

    

File : SendSMSActivity.java - Activité pour envoyer des SMS viaSmsManager.

package com.example.android;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SendSMSActivity extends Activity {

    Button buttonSend;
    EditText textPhoneNo;
    EditText textSMS;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        buttonSend = (Button) findViewById(R.id.buttonSend);
        textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
        textSMS = (EditText) findViewById(R.id.editTextSMS);

        buttonSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

              String phoneNo = textPhoneNo.getText().toString();
              String sms = textSMS.getText().toString();

              try {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(phoneNo, null, sms, null, null);
                Toast.makeText(getApplicationContext(), "SMS Sent!",
                            Toast.LENGTH_LONG).show();
              } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                    "SMS faild, please try again later!",
                    Toast.LENGTH_LONG).show();
                e.printStackTrace();
              }

            }
        });
    }
}

File : AndroidManifest.xml, nécessite l'autorisationSEND_SMS.




    

    

    
        
            
                
                
            
        
    

Voir la démo:

send sms message via smsmanager

2. Exemple d'application SMS intégrée

Cet exemple utilise l'application SMS intégrée de l'appareil pour envoyer le message SMS.

File : res/layout/main.xml - Un bouton uniquement.




    

File : SendSMSActivity.java - Classe d'activité pour utiliser l'intention SMS intégrée pour envoyer le message SMS.

package com.example.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class SendSMSActivity extends Activity {

    Button buttonSend;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        buttonSend = (Button) findViewById(R.id.buttonSend);

        buttonSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                try {

                     Intent sendIntent = new Intent(Intent.ACTION_VIEW);
                     sendIntent.putExtra("sms_body", "default content");
                     sendIntent.setType("vnd.android-dir/mms-sms");
                     startActivity(sendIntent);

                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(),
                        "SMS faild, please try again later!",
                        Toast.LENGTH_LONG).show();
                    e.printStackTrace();
                }
            }
        });
    }
}

Voir la démo:

send sms via build-in sms application

send sms via build-in sms application

Télécharger le code source

Téléchargez-le -1. Android-Send-SMS-Example.zip (16 Ko)