180 likes | 355 Views
Développement Mobile : Android. Cours N°6 Application sur les listview et les Broadcast Receivers Rami AMRI (rami.amri@gmail.com) FST 2011/2012. Les Broadcast Receivers. Pour pouvoir recevoir des intents , Android vous permet de créer une classe qui implémente BroadcastReceiver .
E N D
Développement Mobile : Android Cours N°6 Application sur les listview et les BroadcastReceivers Rami AMRI (rami.amri@gmail.com) FST 2011/2012
Les BroadcastReceivers • Pour pouvoir recevoir des intents, Android vous permet de créer une classe qui implémenteBroadcastReceiver. • Ces objets sont conçus pour recevoir des intents (intentions) et appliquer des comportements spécifiques à votre code.
Les BroadcastReceivers • UnBroadcastReceiver ne possède qu’une seule méthode onReceive() que votre classe devra implémenter. • Un BroadcastReceiverne vit que le temps de traiter votre onReceive().
Les BroadcastReceivers • lorsque le BroadcastReceiver est implémenté sur un composant qui a une durée de vie assez longue, comme une activité ou un service : dans ce cas, le récepteur vivra aussi longtemps que son « hôte » • faut appeler registerReceiver() dans la méthode onResume() ou onCreate() de l’activité pour annoncer son intérêt pour une intention,
Les BroadcastReceivers • Le système Android envoie l’intention à tous les BroadCastReceiverabonnées par ordre de priorité (priorité de votre BroadCast dans le fichierAndroidManifest.xml). • Si un BroadCastsouhaite interrompre la réception du Broadcast à ceux d’un niveau inferieure de priorité, il faut utiliser la méthode abortBroadcast().
Les BroadcastReceivers • Exemple: Un BR qui « écoute » la réception d’un sms
Les BroadcastReceivers • Le BroadcastReceiver doit être déclarer dans le fichier manifest.xml
Les BroadcastReceivers • Permissions accordées au Broadcastreceiver • Le filtre des intents relatif à la réception de messages
Application • On Souhaite crée une application qui intercepte les SMS reçus et qui les affiche dans une listView, • Nous allons d’abord créer notre projet « SMSReceiver » qui contiendra une listView et un brodcastReceiver qui se chargera « d’ecouter » et réagir à la réception d’un SMS
Application • Nous allons d’abord créer ListView dans notre activité principale qui héritera de ListActivity • Nous allons ajouter notre listView dans le main.xml
Application • Ensuite dans le manifest, nous allons ajouter les permissions nécessaires • Dans le onCreate de notre application, nous allons nous abonner au broadcastreceiver
Application • Créer un adapter et l’associé à notre listView • Sans oublier
Application • Maintenant, dans le onReceive de notre BrodcastReceiver, nous allons recupérer les SMS et les ajouter à notre listView, • Pour cela, nous allons vérifier que l’action de l’intent reçu correspond à la réception d’un SMS • Sans oublier de mettre avant le onReceive()
Application • Maintenant, si c’est bien le cas, nous allons récupérer les SMS qui sont « contenus » dans les Extra de l’intent • Remarque : le format d’un SMS est pdus (protocoldiscriptionunit ) • Faudra, récupérer les SMS et les parser pour récupérer le numéro de téléphone et le corps du message
Application • Il ne reste plus qu’a ajouter le message dans la listView • Et notifier le changement de données et recharger la liste automatiquement.