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:
-
API SmsManager
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
-
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:
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:
Télécharger le code source
Téléchargez-le -1. Android-Send-SMS-Example.zip (16 Ko)
Téléchargez-le -2. Android-Build-In-SMS-Application-Example.zip (16 Ko)