![]() |
côté téléphone mobile Deuxième phase |
![]() |
--ooOoo--
| Le texte fait référence aux sources de
l'application affichés à l'origine dans des "cadres insérés" (slots) dont le nombre est limité par le fournisseur d'accès Free. Ils ont donc été remplacés par des pavés de téléchargement !... |
--ooOoo--
I.1.2.2 - La poursuite GPS de l'application :
On rappelle les fonctions supplémentaires utilisées dans cette deuxième phase :
| • | géolocalisation avec la puce GPS du téléphone, |
| • | utilisation des entrées/sorties sur fichiers interne ou externe (carte SD). |
Dans cette phase d'avancement, on rentre dans le vif du sujet puisqu'il s'agit maintenant de collecter tous les points de la trajectoire.
La partie programmation n'a posé aucun problème.
| I.1.2.2.1 - Le fichier "AndroidManifest.xml" | téléchargement ICI |
Pour utiliser la géolocalisation, une autorisation d'accès doit être donnée aux différents services. Ceci est réalisé par la clause de la ligne 7 du fichier :
| <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> |
I.1.2.2.2 - Le fichier "GPSPoursuite.java" |
téléchargement ICI |
Les classes nécessaires au traitement de la géolocalisation se trouvent dans le ".jar" Android accédé par l'instruction "import android.location.* ;" de la ligne 93.
La méthode "requestLocationUpdate" (lignes 556 à 559) organise la manière d'effectuer la géolocalisation. La principale méthode "onLocationChanged" (ligne 562) récupère les coordonnées des points grâce aux méthodes "getLongitude()", "getLatitude()" et "getAltitude()" (lignes 571, 574 et 577).
La figure ci-dessous montre dans la trace du système (la LogCat) la capture d'un point de géolocalisation entouré d'une ellipse envoyé, pour simulation, par une connexion "telnet" avec une commande "geo fix longitude latitude altitude". C'est avec cet outil que le kit de développement communique avec l'émulateur du téléphone.

Il faut noter que le code "5554" de la commande "telnet" correspond au port sur lequel est connecté l'émulateur du téléphone (ADV) quand il est lancé par l'ADT/Eclipse. Le numéro de ce port est affiché dans le titre de la fenêtre du téléphone virtuel et c'est ce numéro qui doit être spécifié. Il peut changer si, par exemple, lors d'une déconnexion de l'AVD, on relance une exécution de l'application sans sortir de l'ADT.
Avec l' "Emulator Control" de l'ADT, on peut charger un fichier GPX obtenu à partir d'un fichier KML ou KMZ connu de "Google Earth". Pour le convertir, j'ai utilisé le programme "GPSBabel". Les fichiers GPX marchent normalement ce qui n'est pas le cas des fichiers KML. Dommage !... car il n'y aurait pas eu besoin de les convertir.
On notera que, dans les deux cas, "telnet" et "Emulator Control", l'altitude renvoyée est toujours nulle. Je n'ai trouvé aucun paramètre de configuration pour pouvoir l'obtenir. J'espère que ce ne sera pas le cas en vraie grandeur.
En aparté : sous Windows Vista et Seven, la commande "telnet" n'est pas activée par défaut et on en a besoin pour simuler l'envoi de coordonnées de géolocalisation comme le fait "Eclipse" en arrière plan. Pour activer cette commande "telnet", surtout ne pas télécharger quoique ce soit, effectuer seulement la procédure standard suivante :
→ Menu Démarrer
Panneau
de configuration
Programmes et Fonctionnalités
Activer ou Désactiver des fonctions Windows
Cocher la case "Client Telnet"
• Sauvegarde de la trajectoire :
L'application effectue une sauvegarde de la trajectoire en cours au fur et à mesure qu'elle se déroule. Cette opération crée donc un fichier de préférence sur la carte SD du téléphone si elle est montée sinon le fichier sera stocké sur la mémoire interne comme on peut le voir sous le "File Explorer" de "DDMS" illustré par la figure ci-dessous.

La détection de la carte SD s'effectue par la méthode "getExternalStorageState()" suivie des instructions des lignes 506 à 524 pour obtenir le chemin d'accès complet du fichier dans la variable "chefictraj" contenant la date et l'heure du départ de la géolocalisation. Après la procédure d'écriture est identique que celle pour écrire dans un fichier de la mémoire interne. Elle est réalisée par la méthode "ecrfictraj()" aux lignes 380 à 399.
| I.1.2.2.3 - Le fichier "gpr_poursuite.xml" | téléchargement ICI |
Ce fichier ".xml" reste inchangé.
| I.1.2.2.4 - Le fichier "GPSParametres.java" | téléchargement ICI |
Ce fichier ".java" reste inchangé.
| I.1.2.2.4 - Le fichier "gps_parametres.xml" | téléchargement ICI |
Ce fichier ".xml" reste inchangé.