sio2:projet_depann_tout_2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sio2:projet_depann_tout_2 [2025/01/12 19:36] dthevenotsio2:projet_depann_tout_2 [2025/02/09 18:47] (Version actuelle) – [Importation des données avec le module Volley] dthevenot
Ligne 54: Ligne 54:
 Afin de ne pas perdre tout le travail réalisé à cause d'une fausse manipulation, dupliquer  l'application. Afin de ne pas perdre tout le travail réalisé à cause d'une fausse manipulation, dupliquer  l'application.
  
 +L'auto-entrepreneur va (en cliquant sur un bouton) importer automatiquement les rdv du jour en provenance du serveur. Cette importation va automatiquement mettre à jour les clients (si il y a des rdv avec de nouveaux clients) et les interventions (avec les rdv pris).
 ==== Autorisations ==== ==== Autorisations ====
 Il est nécessaire d'autoriser l'application à accéder à Internet, pour cela, ajouter les lignes suivantes au niveau du fichier **manifests/AndroidManifest.xml**, avant la balise </manifest> Il est nécessaire d'autoriser l'application à accéder à Internet, pour cela, ajouter les lignes suivantes au niveau du fichier **manifests/AndroidManifest.xml**, avant la balise </manifest>
Ligne 68: Ligne 69:
 ==== Installation de la bibliothèque Volley ==== ==== Installation de la bibliothèque Volley ====
    
-La bibliothèque Volley facilite la gestion asynchrone des appels réseaux.+La bibliothèque Volley facilite la gestion asynchrone des appels réseaux.https://google.github.io/volley/
    
 Pour l'intégrer au projet, il faut modifier le fichier **build.gradle.kts (module app)**. Il faut ajouter la  ligne suivante dans les dépendances : **implementation(libs.volley)**  Pour l'intégrer au projet, il faut modifier le fichier **build.gradle.kts (module app)**. Il faut ajouter la  ligne suivante dans les dépendances : **implementation(libs.volley)** 
Ligne 98: Ligne 99:
 <code> <code>
 // url de la requête au serveur  // url de la requête au serveur 
-String url = "http://adressIPServeurWeb/ ReparTout/getLesRendezVous.php"; RequestQueue queue = Volley.newRequestQueue(this); +String url = "http://adressIPServeurWeb/ReparTout/getLesRendezVous.php";  
 +RequestQueue queue = Volley.newRequestQueue(this); 
 Log.i("volley-requete","volley1 ok");  Log.i("volley-requete","volley1 ok"); 
 JSONObject jsonObject = null; // objet JSON envoyé au serveur  JSONObject jsonObject = null; // objet JSON envoyé au serveur 
Ligne 124: Ligne 126:
 Log.i("volley-requete","fin ok");  Log.i("volley-requete","fin ok"); 
 </code> </code>
 +
 +**adressIPServeurWeb** est à remplacer par l'adresse IP **10.0.2.2** car le périphérique de l'émulateur Android n'interprète pas le localhost de la machine hôte. 10.0.2.2 est un alias pour accéder à l’hôte local de votre ordinateur à partir d’un émulateur Android.
 +
 Après envoi de la requête au serveur, 2 écouteurs sont créés, ils seront sollicités selon le succès ou l'échec de la requête.  Après envoi de la requête au serveur, 2 écouteurs sont créés, ils seront sollicités selon le succès ou l'échec de la requête. 
  
 L'objet RequestQueue gère la file d'attente des requêtes.  L'objet RequestQueue gère la file d'attente des requêtes. 
  
-===== Exploitation des données importées ===== + 
- + 
 +===== Exploitation(partielle) des données importées ===== 
 +<bootnote>l'exploitation ici ne concerne que les données des clients</bootnote> 
 Modifier les classes métiers Client et Intervention afin de leur ajouter l'attribut idDistant, qui  représente l'id au niveau de la base de données venant du serveur. Modifier les classes métiers Client et Intervention afin de leur ajouter l'attribut idDistant, qui  représente l'id au niveau de la base de données venant du serveur.
    
Ligne 138: Ligne 145:
 ArrayList<Client> lesClients = new ArrayList<Client>();  ArrayList<Client> lesClients = new ArrayList<Client>(); 
 try {  try { 
- JSONArray array = new   + JSONArray array = new JSONArray(jsonObject.getString("lesRendezVous")); 
-JSONArray(jsonObject.getString("lesRendezVous")); +
  Log.i("httphab", "taille du tableau " + array.length());   Log.i("httphab", "taille du tableau " + array.length()); 
  // Chaque objet JSON devient un objet de type Client, rangé dans  la collection   // Chaque objet JSON devient un objet de type Client, rangé dans  la collection 
Ligne 196: Ligne 202:
 </code>  </code> 
 Les clients seront ensuite à intégrer dans la base de données SQLite s'ils n'existaient pas déjà. Ajouter le même traitement pour les interventions. Les clients seront ensuite à intégrer dans la base de données SQLite s'ils n'existaient pas déjà. Ajouter le même traitement pour les interventions.
 +<badge>Fonctionnalités à développer, à montrer et projet à déposer sur gitea(commit à chaque niveau qui fonctionne) : 
 +  * **niveau 1**(5 points) : affichage des clients concernés par les rdv du jour 
 +  * **niveau 2**(10 points) : mise à jour des clients dans la base de données côté client(android) - contrôle avec l'affichage des clients 
 +  * **niveau 3**(15 points) : traitement des rdv avec mise à jour des interventions dans la base de données côté client(android) - contrôle avec l'affichage des interventions 
 +  * **niveau 4**(20 points) : exportation des interventions sur le serveur(éventuellement nouvelles ou modifiées) 
 +</badge>
  • sio2/projet_depann_tout_2.1736706994.txt.gz
  • Dernière modification : 2025/01/12 19:36
  • de dthevenot