1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| import android.app.Activity;
import android.app.PendingIntent;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
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 Android_sms_01Activity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//On récupère le bouton créer en XML grâce à son id
Button btnEnvoie = (Button)findViewById(R.id.envoyer);
//On récupère les deux EditText correspondant aux champs pour entrer le numéro et le message
final EditText numero =(EditText)findViewById(R.id.numero);
final EditText message = (EditText)findViewById(R.id.message);
final Context context= Android_sms_01Activity.this;
//On affecte un écouteur d'évènement au bouton
btnEnvoie.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//On récupère ce qui a été entré dans les EditText
String num = numero.getText().toString();
String msg = message.getText().toString();
//Si le numéro est supérieur à 4 charactère et que le message n'est pas vide on lance la procédure d'envoi
if(num.length()>= 4 && msg.length() > 0){
//Grâce à l'objet de gestion de SMS (SmsManager) que l'on récupère grâce à la méthode static getDefault()
//On envoit le SMS à l'aide de la méthode sendTextMessage
SmsManager smsManager = SmsManager.getDefault();
try {
//smsManager.sendTextMessage(num, null, msg, null, null);
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_DELIVERED"), 0);
smsManager.sendTextMessage(num, null, msg, sentPI, deliveredPI);
Toast toast=Toast.makeText(context, "Sms bien envoyé ...", Toast.LENGTH_LONG);
toast.show();
try {
// store the sent sms in the sent folder (that shouldn't be necessary?!)
// a priori, oui, il est nécessaire car Ce n'est pas automatiquement mémorisé par l'API
ContentValues values = new ContentValues();
values.put("address", num);
values.put("body", msg);
context.getContentResolver().insert(Uri.parse("content://sms/sent"), values);
} catch (Exception e) {
Toast toast1=Toast.makeText(context, "Erreur !"+ e, Toast.LENGTH_LONG);
toast1.show();
}
} catch (Exception e) {
Toast toast=Toast.makeText(context, "Erreur !"+ e, Toast.LENGTH_LONG);
toast.show();
}
//On efface les deux EditText
numero.setText("");
message.setText("");
}else{
//On affiche un petit message d'erreur dans un Toast
Toast.makeText(context, "Entrer le numéro et/ou le message", Toast.LENGTH_SHORT).show();
}
}
});
}
} |
Partager