Aller au contenu

Mise en place d'un BroadcastReceiver dans une activity


Chronogps

Recommended Posts

Etant donné que j'ai besoin de traiter des SMS entrant dans une application (et que je ne vois pas comment transférer des données d'un Receiver a une Activity, je me suis dit que je pouvais peut être m'y prendre différemment en mettant en place le receiver directement dans l'activity de la manière suivante :

   BroadcastReceiver br;
   IntentFilter filter;

(...)
   public void onCreate(Bundle savedInstanceState) 
       {        
(...)
       br = new BroadcastReceiver()
           {
           @Override
           public void onReceive(Context ctx, Intent intent)
               {
               unregisterReceiver(br);
               }
           };        
       filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
       registerReceiver(br, filter);
(...)

Le manifest contient la bonne permission :

Aucune erreur à l'exécution mais le BroadcastReceiver n'est jamais appelé...

Où est l'erreur ? Ce n'est pas possible de faire cela ?

Lien vers le commentaire
Partager sur d’autres sites

Je m'auto réponds

Pour une raison que j'ignore il faut mettre en place le registerReceiver dans le onResume :

protected void onResume()

{

super.onResume();

IntentFilter filter = new IntentFilter();

filter.addAction("android.provider.Telephony.SMS_RECEIVED");

registerReceiver(receiver, new IntentFilter(filter));

}

Raison ? (cela m'intéresserait de le savoir)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...