How to listen incoming sms on android ?
Pour écouter les messages entrant sur Android , nous allons utilisés l'objet appelé broadcastreceiver.- Après avoir crée le projet dans Android Studio, nous allons procéder comme suit :
- nous allons modifier notre fichier
manifest.xml
et ajouter les permissions pour le recevoir les sms à savoir <uses-permission android:name="android.permission.RECEIVE_SMS" />. - nous allons créer un service qui vas se charger d'écouter les messages entrants. pour ceux qui ne connaissent pas bien les services, je vous recommande service.
-
dans notre service, nous allons declarer un objet du type broadcast receiver. il est à noter que dans cette méthode nous allons enregistrer automatique notre broadcast receiver. Ainsi nous allons ajouter :
private final BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals("android.provider.Telephony.SMS_RECEIVED")) { Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); } String strMessageBody = ""; String strMessageFrom = ""; for (SmsMessage message : messages) { strMessageFrom = message.getDisplayOriginatingAddress(); strMessageBody = message.getDisplayMessageBody(); } Toast.makeText(context,strMessageFrom,Toast.LENGTH_LONG).show(); Toast.makeText(context,strMessageBody,Toast.LENGTH_LONG).show(); } } } };
- c'est le Action provider qui permet de "capter" le signal émi par l'arriver d'un sms.
- Ainsi lorsque message arrive, on nous affiche la source et le contenu du message
- Il suffit maintenant de lancer notre service dans le oncreate de l'activité principale
dans le prochain article, nous proposerons une méthode assez intelligente pour économiser la batterie car cette méthode a pour inconvénient de tourner continuellement.
Commentaires
Enregistrer un commentaire