IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Récupérer un SMS


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Récupérer un SMS
    Bonjour,

    Je souhaite recuperer les sms provenant d'un unique expéditeur (le problème n'est pas la ça je verrai plus tard ...).

    J'ai trouvé cette solution sur internet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.telephony.gsm.SmsMessage;
    import android.widget.Toast;
     
    public class SMSReceiver extends BroadcastReceiver
    {
        public void onReceive(Context context, Intent intent)
        {
            Bundle myBundle = intent.getExtras();
            SmsMessage [] messages = null;
            String strMessage = "";
     
            if (myBundle != null)
            {
                Object [] pdus = (Object[]) myBundle.get("pdus");
                messages = new SmsMessage[pdus.length];
     
                for (int i = 0; i < messages.length; i++)
                {
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    strMessage += "SMS From: " + messages[i].getOriginatingAddress();
                    strMessage += " : ";
                    strMessage += messages[i].getMessageBody();
                    strMessage += "\n";
                }
     
                Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
            }
        }
    }

    Si j'ai bien compris cette class permet de parcourir tous les sms et de les afficher dans un toast c'est ca ?

    Dans l'hypotèse ou il s'agit de cela comment faire pour recuperer le string strMessage dans mon activity et oui je débute et j'ai vraiment du mal

    La encore j'ai trouvé un tuto (seul la fin explique le passage de variable d'une vue à une autre) : http://android.developpez.com/cours/

    Merci d'avance pour votre aide

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Personne ne sait coment passer une chaine String d'une classe receiver vers une activity?

  3. #3
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juin 2002
    Messages : 2 112
    Points : 4 230
    Points
    4 230
    Par défaut
    Salut,

    Pourrais tu être plus précis quand a ton besoin initial ?
    Tu veux faire une application qui affiche dans une liste tous les messages (SMS) en provenance d'un contact / numéro de téléphone ?
    Ou alors tu veux faire une application qui "capture" les nouveaux messages venant d'un numéro de téléphone particulier pour ensuite faire un traitement ?
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par MrDuChnok Voir le message
    Salut,

    Pourrais tu être plus précis quand a ton besoin initial ?
    Tu veux faire une application qui affiche dans une liste tous les messages (SMS) en provenance d'un contact / numéro de téléphone ?
    Ou alors tu veux faire une application qui "capture" les nouveaux messages venant d'un numéro de téléphone particulier pour ensuite faire un traitement ?

    Bonjour,

    Merci de t’intéresser à mon problème :
    Oui je souhaite récupérer un sms d'un numéro particulier ou alors avec le corps du msg commençant d'une certaine manière pour ensuite faire un traitement.

    Mon problème est que je ne sais pas comment faire pour par ex récupérer le String messageBody du receiver de ce tuto par exemple : http://nbenbourahla.developpez.com/t...eiver-android/

    et au lieu de l'afficher dans un Toast l'envoyer dans mon activity et ensuite le traiter.

    Je sais pas si je suis clair ?

  5. #5
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juin 2002
    Messages : 2 112
    Points : 4 230
    Points
    4 230
    Par défaut
    En faite, en dehors du problème technique, je ne comprends pas ce que tu veux faire fonctionnellement.
    Il faudrait que tu me décrire plus précisément la finalité de ton application.
    Je pourrais ainsi t'aiguiller plus finement.
    Car, par exemple si tu veux récupèrer les SMS existant pas besoin de passer par un Broadcastreceiver, mais il est préférable d'utiliser autres choses.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    En fait mon appli appel un numéro celui ci m'envoi un sms que je souhaiterai traiter pour récupérer des informations (num client nom prenom ...) contenu dans ce sms et les afficher en suivant .

  7. #7
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2004
    Messages : 2 493
    Points : 4 098
    Points
    4 098
    Par défaut
    Passer des informations d'un broacast à une activity sefait à l'aide d'un Intent, qui contiendra des "EXTRAs".
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  8. #8
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2012
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    Bonjour. J'ai rencontré le même problème que barracofr.

    Tout comme lui je souhaite récupérer les sms du BroadcastReceiver. L'objectif de mon application est de véhiculer des informations entre mon application et un modem GSM.
    Pour ça j'utilise le BroadcastReceiver. J'ai parcourus de nombreux tuto, et ça y est je récupère le sms. Je parviens à le faire apparaître dans le Logcat. Et là je bloque au même endroit, je n'arrive pas à véhiculer le contenu du sms du Broadcast à mon Activity.

    L'objectif pour moi est d'afficher à l'écran ces données récupéré dans le Sms.

    J'ai l’impression de passer à côté de quelque chose de très simple.

    C'est mon premier poste et je me doute que d'autres informations seront nécessaire, donc je reste à disposition si tel est le cas.

    Merci.

  9. #9
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut
    Voila je pense que c'est sa que tu cherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    package me.om;
     
    import android.app.Activity;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.telephony.gsm.SmsManager;
    import android.telephony.gsm.SmsMessage;
    import android.util.Log;
    import android.widget.Toast;
     
    public class SmsActivity extends Activity {
        /** Called when the activity is first created. */
        public String k="koko";
    	public class Receiver extends BroadcastReceiver{
     
    		@Override
    		public void onReceive(Context context, Intent intent) {
    			// TODO Auto-generated method stub
     
    			Toast.makeText(context, "Action", Toast.LENGTH_SHORT).show();
    			if(intent.getAction().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]);
    					for(SmsMessage message : messages)
    						{
    							Log.i("",message.getOriginatingAddress()+"::"+message.getMessageBody());
    							k="je suis ";
    							k=message.getOriginatingAddress()+"::"+message.getMessageBody();
    							if(message.getOriginatingAddress().equals("066"))
    							{
    								Log.i("","voila je peux le capturé mnt ");
    								Toast.makeText(context,message.getMessageBody(), 130000).show();
    							}
    							Log.i("",k);
    							Toast.makeText(context, k, 130000).show();
    						}
    				}											
    			}
     
    		}
     
    	}
     
    	@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
    		SmsManager smsManager = SmsManager.getDefault();
     
    		Receiver receiver = new Receiver();
    		registerReceiver(receiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));
     
     
     
        }
    }
    le test est pour le num 066

    Cordialement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement.
    Le français n'est pas ma langue maternelle, désolé pour les éventuelles fautes.
    http://icoz.ma
    http://icozstore.com

  10. #10
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    juin 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : juin 2012
    Messages : 12
    Points : 13
    Points
    13
    Par défaut question
    Citation Envoyé par ryodo Voir le message
    Voila je pense que c'est sa que tu cherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    package me.om;
     
    import android.app.Activity;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.telephony.gsm.SmsManager;
    import android.telephony.gsm.SmsMessage;
    import android.util.Log;
    import android.widget.Toast;
     
    public class SmsActivity extends Activity {
        /** Called when the activity is first created. */
        public String k="koko";
    	public class Receiver extends BroadcastReceiver{
     
    		@Override
    		public void onReceive(Context context, Intent intent) {
    			// TODO Auto-generated method stub
     
    			Toast.makeText(context, "Action", Toast.LENGTH_SHORT).show();
    			if(intent.getAction().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]);
    					for(SmsMessage message : messages)
    						{
    							Log.i("",message.getOriginatingAddress()+"::"+message.getMessageBody());
    							k="je suis ";
    							k=message.getOriginatingAddress()+"::"+message.getMessageBody();
    							if(message.getOriginatingAddress().equals("066"))
    							{
    								Log.i("","voila je peux le capturé mnt ");
    								Toast.makeText(context,message.getMessageBody(), 130000).show();
    							}
    							Log.i("",k);
    							Toast.makeText(context, k, 130000).show();
    						}
    				}											
    			}
     
    		}
     
    	}
     
    	@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
    		SmsManager smsManager = SmsManager.getDefault();
     
    		Receiver receiver = new Receiver();
    		registerReceiver(receiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));
     
     
     
        }
    }
    le test est pour le num 066

    Cordialement
    Bonjour,

    Quel receive t'as précisé dans ton manifest.xml?

    Merci

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2016
    Messages : 1
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Deucky Voir le message
    Bonjour. J'ai rencontré le même problème que barracofr.

    Tout comme lui je souhaite récupérer les sms du BroadcastReceiver. L'objectif de mon application est de véhiculer des informations entre mon application et un modem GSM.
    Pour ça j'utilise le BroadcastReceiver. J'ai parcourus de nombreux tuto, et ça y est je recuperer sms android. Je parviens à le faire apparaître dans le Logcat. Et là je bloque au même endroit, je n'arrive pas à véhiculer le contenu du sms du Broadcast à mon Activity.

    L'objectif pour moi est d'afficher à l'écran ces données récupéré dans le Sms.

    J'ai l’impression de passer à côté de quelque chose de très simple.

    C'est mon premier poste et je me doute que d'autres informations seront nécessaire, donc je reste à disposition si tel est le cas.

    Merci.
    Bon courage!

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Tchad

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2022
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    Bonjour ! Je suis débutant en programmation mobile, je veux réaliser une application qui affiche dans une liste tous les messages (SMS) en provenance d'un contact / numéro de téléphone, je suis bloqué. Je récupère normalement les sms stockés dans la table sms, mais comment les organiser en liste, je n'arrive pas. Merci d'avance !

Discussions similaires

  1. Réponses: 11
    Dernier message: 15/08/2019, 09h44
  2. Récupérer sms supprimés
    Par MissTitou dans le forum Android
    Réponses: 3
    Dernier message: 20/04/2018, 09h25
  3. Récupérer des sms via l'AS400
    Par MARTISA dans le forum Logiciels Libres & Open Source
    Réponses: 0
    Dernier message: 04/08/2014, 12h19
  4. Récupérer le port pour envoi sms
    Par DrMaboul dans le forum Java ME
    Réponses: 12
    Dernier message: 11/05/2009, 18h49
  5. Récupérer les sms d'un pocket pc
    Par Aspic dans le forum Windows Mobile
    Réponses: 6
    Dernier message: 23/03/2008, 00h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo