Jump to content

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 ?

Link to comment
Share on other 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)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...