ListActivity_Wifi 1 Android: ListActivity et connexions en Wifi. Le nécessaire pour la réalisation d’un premier TP Notes de cours jean-michel Douin, douin.

Slides:



Advertisements
Présentations similaires
Tutoriel - Les Ressources du BCH
Advertisements

Abes agence bibliographique de l’enseignement supérieur Les scripts.
Gestion des événements (suite)
Android les Services, Receiver et processus
Android View, onClick, Activity, Modèle Vue Contrôleur
Android UIThread, Thread, Handler et AsyncTask
Exposé de Système - Informatique et Réseau
Module 10 : Gestion et analyse de l'accès réseau
Module 7 : Résolution de noms NetBIOS à l'aide du service WINS
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Introduction aux IHM et à la réflexivité Java Vos premiers pas en Swing.
Design Pattern MVC En PHP5.
Autorisations Utilisation eCATT
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
Laboratoire d ’Interaction Collaborative, Téléformation, Téléactivités
Projet Drone/Android M2
Principes de programmation (suite)
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
UML : GENERALITES Rappel Diagrammes Niveaux de visions
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
XML-Family Web Services Description Language W.S.D.L.
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
JAVASERVER FACES Un framework Java pour le développement Web.
Cours N°6 Application sur les listview et les Broadcast Receivers Rami AMRI FST 2011/2012.
Université de La Rochelle Saisie et Mise à jour des fiches ECTS le 01/12/2000.
PROJET DE GENIE LOGICIEL 2005
Module 2 : Préparation de l'analyse des performances du serveur
Android ListView, ListActivity une introduction
Android View, onClick, Activity, Modèle Vue Contrôleur
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
Les présentations assistées par ordinateur (préAO)
Exploration de la programmation android Formation Assurer par: Club FreeWays Réalisé par: BOUHJJA Lamia.
Receiver, CGM et + 1 Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction Notes de cours jean-michel Douin, douin au cnam point fr.
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Android ListView, ListActivity une introduction
Android UIThread, Thread, Handler et AsyncTask
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
12/04/ Le polymorphisme Cours 8 Cours 8.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Les sockets.
Service_Receiver 1 Android les Services, Receiver et processus Notes de cours jean-michel Douin, douin au cnam point fr version : 27 Mai 2014.
Yonel GRUSSON.
Présence et communication peer-to-peer Diplômant : Yves Bresson Professeur responsable : Yves Dennebouy EIVD Septembre - Décembre 2003.
Visualisation d’un entrepôt de données Pré soutenance technique
jean-michel Douin, douin au cnam point fr
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Android: Introduction, présentation
Notifications et Communication réseau D. BELLEBIA – 18/12/2007NSY208 CNAM.
Iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 Charte graphique.
EPREUVE E6 : PARCOURS DE PROFESSIONNALISATION
Programmation mobile: Android
Mathieu Martin Thomas Rovayaz Natacha Laborde Nathanaël Couret
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Semaine 05 - Android - Partie 02 Le TweetListActivity.
Semaine 05b Partie 3 – ListView Item click. Résumé  Dans la leçon précédente, on a vu comment ajouter un layout dans un ListView  Dans l’application.
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
© 2010 Sage - Tous droits réservés 1 SIGMA Atelier Découvertes Ergonomie et Prise en Main SAGE ERP X3 Version 6.
BlueJ_VII 1 Java, les objets : tout de suite ! Conception de classes (1) Notes de cours associées au chapitre 7 tutorial BlueJ
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
Android_Introduction 1 Android: Introduction, présentation Notes de cours jean-michel Douin, douin au cnam point fr version : 24 septembre 2015.
Abes agence bibliographique de l’enseignement supérieur Les scripts.
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Ressources et fichiers XML O.Legrand G.Seront. Ressources et fichiers XML developer.android.com/guide/topics/resources/index.htmll Les ressources suivantes.
Les vues O.Legrand G.Seront. Les vues Dans Android, une ihm est composée de vues. Ces vues.
Les applications O.Legrand G. Seront. Les applications Chaque application a son Linux.
Transcription de la présentation:

ListActivity_Wifi 1 Android: ListActivity et connexions en Wifi. Le nécessaire pour la réalisation d’un premier TP Notes de cours jean-michel Douin, douin au cnam point fr version : 29 Décembre 2014

ListActivity_Wifi 2 Sommaire Android connexions Wifi Obtenir la liste des points d’accès –Quel est le plus proche ? Devenir un point d’accès Se connecter à l’un des points d’accès Wifi p2p – Wifi nsd –

ListActivity_Wifi 3 Bibliographie utilisée… à compléter Mobile Middleware, Architecture, Patterns and Practice, Sasu Tarkoma,ed. Wiley Le cours de Jean-Marc Farinone RSX

ListActivity_Wifi 4 Android en pratique Avertissement ListActivity / ListView BroadcastReceiver –Intent –IntentFilter Le kit pour le TP

ListActivity_Wifi 5 Android seconde partie : Wifi Obtenir la liste des points d’accès Devenir un point d’accès Se connecter UDP p2p nsd

ListActivity_Wifi 6 Vocabulaire Les Essentiels –Activity Une activité est associée à une IHM –BroadcastReceiver Réception d’un message transmis par un émetteur via Android –Intent –Les notifications –IntentFilter Les filtres des notifications candidates –Service Une tache de fond sans IHM –ContentProvider La persistance des données

ListActivity_Wifi 7 Introduction … Classes Activity –Associée à une interface utilisateur Cycle de vie (démarrée, en pause, arrêtée, détruite…) –Peut démarrer d’autres activités, peut émettre des évènements(intentions, intent) Une configuration de type XML, permissions, librairies, ListActivity extends Activity –Dédiée aux affichages de liste d’items BroadcastReceiver –Réception des évènements systèmes ou d’une autre application –Émission et réception d’intentions (intent) Intent –Notifications, IntentFilter –Critères de sélection, éligibilité, mécanisme de résolution

ListActivity_Wifi 8 Communication inter applications Intent, comme notification –Souscription/Publication –Appeler, déclencher une autre activité Avec éventuellement des paramètres et des résultats attendus –L’intergiciel sélectionne la « bonne application » Selon les critères exigés par le souscripteur Critères précisés lors de la publication –Nécessaire adéquation à l’exécution services fournis / services requis

ListActivity_Wifi 9 Patron Publish-Subscribe/Intent & Context Source: rappelhttp://roboticswikibook.org

ListActivity_Wifi 10 Sous Android Mediator, classe Context – Subscriber, classe BroadcastReceiver – X,Y les thèmes, classe Intent – IntentFilter –

ListActivity_Wifi 11 Abonnement, Désabonnement Abonnement Au sein d’une activité public void onResume(){ super.onResume(); " IntentFilter filter = new IntentFilter(); filter.setAction( " list.update.ACTION " ); registerReceiver(receiver, filter); } Désabonnement public void onPause(){ super.onPause(); " unregisterReceiver(receiver); } private Receiver receiver;

ListActivity_Wifi 12 Notification public void onResume(){ Intent intent = new Intent(); intent.setAction( " list.update.ACTION " ); // intent.putExtra(clef, valeur); sendBroadcast(intent); }

ListActivity_Wifi 13 Le receveur class Receiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent){ int valeur = intent.getExtra(clef); …. }

ListActivity_Wifi 14 Un exemple / en TP Obtenir la liste des points d’accès wifi – results-into-a-listhttp://stackoverflow.com/questions/ /how-can-i-get-android-wifi-scan- results-into-a-list Tenter une connexion sur l’un d’entre eux – network-in-android-programmaticallyhttp://stackoverflow.com/questions/ /how-to-connect-to-a-specific-wifi- network-in-android-programmatically – wifi-with-specific-ssidhttp://stackoverflow.com/questions/ /how-to-connect-android-device-to- wifi-with-specific-ssid Trouver celui qui est le plus proche – and-select-strongest-signal?rq=1http://stackoverflow.com/questions/ /android-how-to-scan-access-points- and-select-strongest-signal?rq=1 Fournir tous les clients connectés – access-pointhttp://stackoverflow.com/questions/ /ip-address-of-device-using-phone-as- access-point Connaître les adresses IP – address-of-nearest-access-point-in-my-wifi-nehttp://stackoverflow.com/questions/ /is-there-any-method-to-find-the-ip- address-of-nearest-access-point-in-my-wifi-ne – the-wifis-corresponding-networkinterface/ the-wifis-corresponding-networkinterface/

ListActivity_Wifi 15 Kit de développement nécessaire Une liste d’items en Android ? Comment obtenir la liste des points d’accès ? Comment obtenir la puissance du signal ? Mais avons-nous les adresses IP des points d’accès ?

ListActivity_Wifi 16 Le kit de développement nécessaire Une liste d’items en Android –ListActivity/ListView Comment obtenir la liste des points d’accès ? –WifiManager Un service au sein d’Android –BroadcastReceiver IntentFilter Comment obtenir la puissance du signal ? –ScanResult Attibut level Avoir les bonnes permissions –AndroidManifest.xml

ListActivity_Wifi 17 ListView / ListActivity Vue –ListView Présentation –Adapter la Vue d’une liste d’items aux souhaits du programmeur Le patron Stratégie (un autre support) –Utiliser des stratégies d’affichage standard Click –ListView / ListActivity onListItemClick onItemLongClick

ListActivity_Wifi 18 Bibliographie utilisée, ListView, ListActivity Le cours de Victor Matos Plusieurs livres Android A Programmers Guide - McGraw Hill Professional Android Application Development – Wrox Le livre de Mark Murphy - Pearson Une vidéo youtube Google IO the world of ListView par Romain Guy

ListActivity_Wifi 19 Présentation d’une liste d’items Un composant graphique commun –À un grand nombre d’applications

ListActivity_Wifi 20 Item de la liste Un texte par Item LinearLayout +TextView (standard, prédéfini) Chaque item de la liste est une View Une Image, Un titre, un nombre par item LinearLayout + TableRow + ImageView + TextView Défini par l’application, un fichier XML

ListActivity_Wifi 21 ListView : Vue Une liste de vues présentant des items Chaque item s’affiche selon un format, –Format défini en XML, –Un adaptateur se charge de l’affichage, Un style de présentation : une stratégie d’affichage, est choisie Il existe des stratégies standard –Une liste d’items constituée de noms séparés d’un trait, ArrayAdapter –Une liste d’items constituée d’une grille, SimpleAdapter,

ListActivity_Wifi 22 Vue, Contrôleur et Modèle Vue La vue de la liste et sa stratégie d’affichage –Les items s’affichent selon une stratégie Standard, prédéfinie Style de présentation, stratégie d’affichage définie par l’utilisateur –setListAdapter Contrôleur Les interactions avec l’utilisateur –A chaque clic sur l’un des items une action est déclenchée Une action est déclenchée, un menu apparaît… –onListItemClick au sein d’une ListActivity Modèle La liste des objets Java représente le modèle –List, Item[], toute collection (une classe Java,…) –Tout changement d’état du modèle sera notifié à la vue Adéquation Vue/Modèle prise en charge par Android –((BaseAdapter)getListAdapter()). notifyDataSetChanged();

ListActivity_Wifi 23 Vue, style d’affichage Vue La vue de la liste et sa stratégie d’affichage –Les items s’affichent selon une stratégie –setListAdapter Standard, prédéfinie Style de présentation, stratégie d’affichage définie par l’utilisateur Patron Strategy –Usage classique : Layout en Swing – –Un rappel en quatre diapositives, en annexe

ListActivity_Wifi 24 Une activity, onCreate Redéfinition de la méthode onCreate –Cumul du comportement –Affectation de la Vue (res/layout/liste.xml) setContentView

ListActivity_Wifi 25 Une activity, le modèle Le modèle itemsCC : – items d’un certificat de compétences constitué de 6 unités NFP121, RSX116, NSY102, SMB116, SMB117, UARS01 –Unités enseignées au Cnam (présentiel et à distance) –Certificat de compétences intégrateur applications mobilesCertificat de compétences intégrateur applications mobiles

ListActivity_Wifi 26 Une activity, choix de la stratégie d’affichage Stratégie : setListAdapter( new ArrayAdapter ( – Choix de la stratégie standard d’affichage this, le contexte android.R.layout.simple_list_item_1, un texte par ligne, prédéfini itemsCC le modèle

ListActivity_Wifi 27 Exécution, le rendu Le rendu ici un item constitué d’un texte par ligne

ListActivity_Wifi 28 Un clic sur l’un des items onListItemClick

ListActivity_Wifi 29 Le fichier XML, Si ListActivity Prédéfini et imposé

ListActivity_Wifi 30 Un intitulé change … Ce qui peut arriver, le modèle change –La vue est prévenue …. –Appel de la méthode de notifyDataSetChanged de l’adapter ListActivity ((BaseAdapter)getListAdapter()). notifyDataSetChanged(); –Adéquation par Android du modèle et de la vue

ListActivity_Wifi 31 Démonstration

ListActivity_Wifi 32 Le kit de développement nécessaire Une liste d’items en Android –ListActivity/ListView Comment obtenir la liste des points d’accès ? –WifiManager Un service au sein d’Android –BroadcastReceiver IntentFilter Comment obtenir la puissance du signal ? –ScanResult Attibut level Avoir les bonnes permissions –AndroidManifest.xml

ListActivity_Wifi 33 Liste des points d’accès –WifiManager Un service au sein d’Android –wifiManager.startScan(); Induit un sendbroadcast par le système –(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)

ListActivity_Wifi 34 Ajout de deux receveurs, le 1er Receveur de la liste des points d’accès –Receveur appelé régulièrement par Android, après l’appel de startScan()

ListActivity_Wifi 35 Ajout de deux receveurs, le2ème Receveur à l’écoute de ce qui se passe –Receveur appelé à chaque modification du réseau

ListActivity_Wifi 36 Le receveur de la liste des points d’accès Appelé à chaque changement d’état wifi par Android Actualisation de l’activité

ListActivity_Wifi 37 Le receveur du changement d’état Le test de la connexion a été perdue

ListActivity_Wifi 38 En détail WifiManager diffuse à chaque changement d’état –WIFI_STATE_CHANGED_ACTION Wifi h/w status has changed: enabling, enabled, disabling, disabled, and unknown EXTRA_WIFI_STATE, EXTRA_PREVIOUS_STATE –SUPPLICANT_CONNECTION_CHANGED_ACTION: Whenever connection state with the active supplicant (access point) changes Fired when a new conn is established, or existing conn is lost (EXTRA_NEW_STATE = true/false) –NEWTWORK_STATE_CHANGED_ACTION: Fired whenever wifi connectivity state changes EXTRA_NETWORK_INFO: NetworkInfo obj for current network status EXTRA_BSSID: BSSID of the access point that you’re connected to –RSSI_CHANGED_ACTION: Monitor the signal strength of the connected WiFi network EXTRA_NEW_RSSI: current signal strength

ListActivity_Wifi 39 Postliminaire onPause et les permissions :AndroidManifest.xml

ListActivity_Wifi 40 Comment se connecter avec un point d’accès Comment obtenir son adresse IP ? –Serait-ce la passerelle ?

ListActivity_Wifi 41 Le mobile devient point d’accès … create-access-point-programmaticallyhttp://stackoverflow.com/questions/ /how-to- create-access-point-programmatically

ListActivity_Wifi 42 Puissance du signal ? public ScanResult calculateBestAP(List sResults){ ScanResult bestSignal = null; for (ScanResult result : sResults) { if (bestSignal == null || WifiManager.compareSignalLevel(bestSignal.level, result.level) < 0) bestSignal = result; } return bestSignal; } points-and-select-strongest-signal

ListActivity_Wifi 43 Annexes

ListActivity_Wifi 44 Architecture MVC, rappel Application: –Une liste d’item : le modèle, du java standard, portable –ListView + ListActivity : la Vue –Un Receiver : le Contrôleur

ListActivity_Wifi 45 Le patron stratégie, l’original Strategy –Une interface commune ConcreteStrategy –Quelle stratégie effective ? Context –Utilisation d’une stratégie choisie par le client, à la configuration

ListActivity_Wifi 46 Le patron stratégie, l’original Strategy –Une interface commune pour tous les affichages Android : ListAdapter ConcreteStrategy –Quelle stratégie pour quel rendu ? Android : ArrayAdapter, SimpleAdapter, CursorAdapter, BaseAdapter, MonAdaptateur, MaStratégieDAffichage … Context –Utilisation d’une stratégie choisie par le client Android : ListView

ListActivity_Wifi 47 Un premier exemple et son affichage La ListView est décrite en XML –Le fichier res/layout/liste.xml –Avec une stratégie prédéfinie setListAdapter( new ArrayAdapter (contexte, Ressource_XML_Prédéfinie, String[] modèle ou List modèle Une ListActivity –Un affichage setContentView Un modèle –Un diplôme Cnam constitué de plusieurs unités d’enseignement NFP121, NSY102, RSX116, SMB116, SMB117, UARS01 –String[] ou List

ListActivity_Wifi 48 Le fichier est prédéfini –La liste est un composant graphique, son identifiant android.R.list La ListView est décrite en XML

ListActivity_Wifi 49 Démonstration Discussion –Architecture logicielle et Processus –…