APPLICATIONS
JAVA
Android
Partie IV
Ivan MADJAROV - 2014
4. Géolocalisation,
Géocodage,
Wi-Fi, Bluetooth,
Applications réseaux TCP
Applications Java sous Android IvMad, 2011-2015 2
L'objectif principal de ce cours est de découvrir la programmation sous
Android, sa plate-forme de développement et les spécificités du développement
embarqué sur téléphone mobile. Le cours s’inspire, reprend, modifie et enrichi
des supports disponibles sur Internet.
Géolocalisation : Le principe
La géolocalisation se base sur Global Positioning System (GPS)
GPS compte 24 satellites répartis sur 6 orbites parcourues en 12h
pour couvrir le globe terrestre.
Les satellites NAVSTAR (Navigation Satellite Timing And Ranging) sont
situés à 20184 km d'altitude et diffusent leur position et l'heure sur des
fréquences dans la bande des micro-ondes (~1500Mhz).
Le GPS se synchronise puis calcule la distance avec le satellite grâce à
la différence de temps en émission et réception.
distance=deltaT *c
(~vitesse de la lumière ~300000km/s)
Le GPS fonctionne par triangulation.
4 satellites sont nécessaires pour
calculer la position et l'altitude.
Source: Yann Caron, Programmation Android - CNAM 2014
Applications Java sous Android IvMad, 2011-2015 3
1
2
3
Position
détectée
avec 3
satellites
sur une
surface 2D
Java Android : Géolocalisation (1)
Les deux principaux éléments pour utiliser les services de
géolocalisation sont:
Gestionnaire de localisation qui fournit l'accès aux services de localisation
Fournisseur de localisation en fonction de la technologie utilisée pour la
localisation de l'appareil.
Pour accéder au gestionnaire de localisation il faut obtenir l'instance de
LOCATION_SERVICE par la méthode getSystemService:
StringserviceName =Context.LOCATION_SERVICE;
LocationManager locationManager =
(LocationManager)getSystemService(svcName);
L'utilisation des services doit être déclarer dans le fichier
AndroidManifest.xml avec la ligne:
<usespermission
android:name="android.permission.ACCESS_FINE_LOCATION"/>
Applications Java sous Android IvMad, 2011-2015 4
Java Android : Géolocalisation (2)
Pour trouver le dernier emplacement connu par le GPS on s'adresse à
un fournisseur de localisation avec la méthode getLastKnownLocation:
String provider = LocationManager.GPS_PROVIDER;
Location loc = locationManager.getLastKnownLocation(provider);
La méthode getLastKnownLocation ne demande pas au fournisseur de
localisation de mettre à jour la position courante!
L'objet Location renvoyé inclut toutes les informations de position
disponibles dans le fournisseur:
Latitude (méthode location.getLatitude();)
Longitude (méthode location.getLongitude();)
Altitude (méthode location.getAltitude();)
Vitesse et heure à laquelle la position a été déterminée (getSpeed())
Applications Java sous Android IvMad, 2011-2015 5
Java Android : Géolocalisation (3)
Applications Java sous Android IvMad, 2011-2015 6
Java Android : Géolocalisation (4)
L'exemple précédent s'appuie sur la dernière position connu
(getLastKnownLocation(provider))
L'exemple peut évoluer en équipant l'application d'un écouteur de
changement de position pour qu'on puisse mettre à jour la position suivant
son évolution.
Les mises à jour peuvent être programmées pour toutes les 2 secondes et
lorsqu'un déplacement est détecté de plus de 5 mètres.
Plutôt que sélectionner un fournisseur (provider), on peut laisser
Androïd choisir le provider disponible le mieux adapté à
l'environnement ou aux critères déposés (objet Criteria)
Créer une instance de LocationListever qui déclenchera la méthode
updateWithNewLocation chaque fois qu'un changement de position sera
détecté.
Applications Java sous Android IvMad, 2011-2015 7
Java Android : Géolocalisation (5)
Applications Java sous Android IvMad, 2011-2015 8
Java Android : Géolocalisation (6)
En général une unité mobile Androïd propose des moyens de
déterminer sa géolocalisation:
Par triangulation des stations GPS (Global Positioning System),
Par recouvrement des cellules mobiles (3G/4G),
Par le réseau Wifi.
Pour une géolocalisation on implémente l'interface LocationListener.
On s'adresse ensuite à l’objet LocationManager pour gérer l'abonnement
aux mises à jour des coordonnées GPS.
Dans l'Activité (View) on surcharge 4 méthodes :
onProviderEnabled est appelée quand une source de localisation est activée;
onProviderDisabled est appelée quand une source de localisation est désactivée;
onStatusChanged est appelée quand le statut d’une source change;
onLocationChanged est appelée quand les coordonnées GPS changent.
Applications Java sous Android IvMad, 2011-2015 9
Java Android : Géolocalisation (7)
Pour s’abonner à la mise à jour des coordonnées GPS, il faut utiliser la
méthode requestLocationUpdates(String, long, float, LocationListener) qui
possède 4 arguments :
Le provider utiliser pour recevoir les mises à jour des coordonnées
utilisateurs (GPS / NETWORK …)
L'intervalle minimum entre deux notifications (en millisecondes)
L'intervalle minimum entre deux notifications (en mètre)
L’instance du LocationListener
Il est conseillé de s’abonner aux mises à jour des coordonnées GPS
dans la méthode onResume et de se désabonner dans la méthode onStop
afin de stopper l’utilisateur des ressources de localisation alors que
l’application n’en a plus l’utilité, sinon le processus de mise à jour
continu est la consommation de la batterie est importante.
Applications Java sous Android IvMad, 2011-2015 10
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !