Chronogps Posted May 9, 2010 Share Posted May 9, 2010 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 More sharing options...
Chronogps Posted May 9, 2010 Author Share Posted May 9, 2010 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 More sharing options...
Igosuki Posted May 11, 2010 Share Posted May 11, 2010 Parce que unregisterReceiver(br); ? Link to comment Share on other sites More sharing options...
Chronogps Posted May 11, 2010 Author Share Posted May 11, 2010 Parce que unregisterReceiver(br); ? Non car il n'est appelé qu'après une réception de SMS (j'ai débuggué : ca ne rentrait jamais dans le OnReceive) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.