0% ont trouvé ce document utile (0 vote)
10 vues9 pages

APIs de Localisation dans Android

Le document présente les APIs de localisation dans le système Android, en détaillant les permissions nécessaires pour accéder aux fonctionnalités de localisation et comment utiliser le LocationManager pour obtenir des mises à jour de position. Il explique également comment afficher des cartes, ajouter des marqueurs, des polylignes, des polygones et des cercles, ainsi que la gestion des mises à jour de localisation dans les méthodes onResume et onPause. Enfin, il souligne l'importance de désactiver les services de localisation pour économiser les ressources lorsque l'application n'en a plus besoin.

Transféré par

Rachid Chaibi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues9 pages

APIs de Localisation dans Android

Le document présente les APIs de localisation dans le système Android, en détaillant les permissions nécessaires pour accéder aux fonctionnalités de localisation et comment utiliser le LocationManager pour obtenir des mises à jour de position. Il explique également comment afficher des cartes, ajouter des marqueurs, des polylignes, des polygones et des cercles, ainsi que la gestion des mises à jour de localisation dans les méthodes onResume et onPause. Enfin, il souligne l'importance de désactiver les services de localisation pour économiser les ressources lorsque l'application n'en a plus besoin.

Transféré par

Rachid Chaibi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Localisation

M. LACHGAR
III. Quelques APIs du système Android

Localisation
Localiser l’appareil :
❑ Permission :
Tout d'abord, il faut demander la permission dans le Manifest pour utiliser les
fonctionnalités de localisation.
❖ Pour utilisation du GPS, il faut inclure la permission suivante
<uses-permission android:name="[Link].ACCESS_FINE_LOCATION" />

❖ Pour une localisation plus imprécise par WiFi et antennes relais :

<uses-permission android:name="[Link].ACCESS_COARSE_LOCATION" />

Ensuite, on va faire appel à un nouveau service système pour accéder à ces


fonctionnalités : LocationManager, que l'on récupère de cette manière :

LocationManager locationManager =
(LocationManager)getSystemService(Context.LOCATION_SERVICE);
III. Quelques APIs du système Android

Localisation
Localiser l’appareil :
❑ Obtenir des notifications du fournisseur :
Pour obtenir la dernière position connue de l'appareil, utilisez Location
getLastKnownLocation(String provider).
Si on veut faire en sorte que le fournisseur se mette à jour automatiquement à une
certaine période ou tous les x mètres, on peut utiliser la méthode suivante :
[Link](LocationManager.GPS_PROVIDER, 60000, 150, new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
Log.d("GPS", "Latitude " + [Link]() + " et longitude " + [Link]());
}
});
III. Quelques APIs du système Android

Localisation
Localiser l’appareil :
Cette méthode possède 4 arguments :
▪ Le provider utiliser pour recevoir les mises à jour des coordonnées utilisateurs (GPS / NETWORK …)
▪ Un interval minimum entre deux notifications (en millisecondes)
▪ Un interval minimum entre deux notifications (en mètre)
▪ L’instance de votre LocationListener

▪ OnProviderEnabled(String provider) : Cette méthode est appelée quand une source de localisation est
activée (GPS, 3G..etc).

String msg = [Link](getResources().getString([Link].provider_enabled), provider);


[Link](getApplicationContext(), msg, Toast.LENGTH_SHORT).show();

<string name="provider_enabled">The provider %s is now enabled</string>

▪ OnProviderDisabled(String provider) : Cette méthode est appelée quand une source de localisation est
désactivée(GPS, 3G..etc). L’argument est le nom de la source désactivée.

String msg = [Link](getResources().getString([Link].provider_enabled), provider);


[Link](getApplicationContext(), msg, Toast.LENGTH_SHORT).show();

<string name="provider_disabled">The provider %s is now disabled</string>


III. Quelques APIs du système Android

Localisation
Localiser l’appareil :
▪ OnStatusChanged(String provider, int status, Bundle extras) : Appeler quand le status d’une source change. Il
existe 3 statuts (OUT_OF_SERVICE, TEMPORARILY_UNAVAILABLE, AVAILABLE).
String newStatus = "";
switch (status) {
case LocationProvider.OUT_OF_SERVICE:
newStatus = "OUT_OF_SERVICE";
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
newStatus = "TEMPORARILY_UNAVAILABLE";
break;
case [Link]:
newStatus = "AVAILABLE";
break;
}
String msg = [Link](getResources().getString([Link].provider_new_status), provider, newStatus);
[Link](getApplicationContext(), msg, Toast.LENGTH_SHORT).show();

<string name="provider_new_status">The provider %1$s has now a new status %2$s</string>


• OnLocationChanged(Location location) : Cette méthode est appelée quand la localisation de l’utilisateur est mise à jour. L’argument
représente la nouvelle position. Vous pouvez récupérer plusieurs informations comme la latitude, longitude, altitude et précision
(en mètre).
latitude = [Link]();
longitude = [Link]();
altitude = [Link]();
accuracy = [Link](); <string name="new_location">New Location : Latitude = %1$s, Longitude
= %2$s, Altitude = %3$s avec une précision de %4$s mètres </string>
String msg = [Link](
getResources().getString([Link].new_location), latitude,
longitude, altitude, accuracy);
[Link](getApplicationContext(), msg, Toast.LENGTH_LONG).show();
III. Quelques APIs du système Android

Localisation
Afficher des cartes :
❑ Les éléments de l’API :
✓ La fonction MapFragment qui vient de
faciliter l’affichage d’une carte sur toutes
les tailles d’écrans des appareils Android.

✓ Les données vectorisées qui offrent deux


avantages : un chargement et un
téléchargement plus rapides.

✓ De nouvelles vues 3D, indoor, trafic, est qui


offrent un affichage de la vue en 3D
(légèrement inclinée).

✓ Des marqueurs beaucoup plus simples à


créer.

✓ Un cache amélioré et beaucoup d’autres


fonctions.
III. Quelques APIs du système Android

Localisation
Afficher des cartes :
❑ Marker :
public void onLocationChanged(Location location) {
latitude = [Link]();
longitude = [Link]();
altitude = [Link]();
accuracy = [Link]();

String msg = [Link](


getResources().getString([Link].new_location), latitude,
longitude, altitude, accuracy);
[Link](new MarkerOptions().position(new LatLng(latitude, longitude)).title("Marker")
.icon([Link]([Link].ic_launcher)));
[Link](getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}

.snippet("Population: 4,137,400")
❑ Type :
if (mMap != null) {
[Link](GoogleMap.MAP_TYPE_HYBRID);
setUpMap();
}

[Link](new [Link]() {
@Override
public boolean onMarkerClick(Marker marker) {
[Link](getApplicationContext(), [Link](),
Toast.LENGTH_SHORT).show();
return false;
}
});
III. Quelques APIs du système Android

Localisation
Afficher des cartes :
❑ PolyLine:
PolylineOptions rectOptions = new PolylineOptions()
.add(new LatLng(31.6341600, -7.9999400))
.add(new LatLng(34.0132500, -6.8325500));
[Link](rectOptions);

❑ Polygons :
[Link](new PolygonOptions()
.add( new LatLng(31.6341600, -7.9999400), new LatLng(34.0132500, -6.8325500), new
LatLng(34.0371500, -4.9998000)).fillColor([Link]));

❑ Cercle :
CircleOptions circleOptions = new CircleOptions()
.center(new LatLng(31.6341600, -7.9999400))
.radius(100); // en mètre
[Link](circleOptions);
III. Quelques APIs du système Android

Localisation
Désactiver le service de location
il est conseillé de s’abonner aux mises à jour des coordonnées de l’utilisateur dans la
méthode onResume et de se désabonner dans le méthode onStop afin de stopper
l’utilisateur des ressources de localisation alors que l’application n’en a plus l’utilité.

@Override

protected void onResume() {


[Link]();
lm = (LocationManager) [Link](LOCATION_SERVICE);

if ([Link](LocationManager.GPS_PROVIDER))
[Link](LocationManager.GPS_PROVIDER, 10000, 0, this);
[Link](LocationManager.NETWORK_PROVIDER, 10000, 0, this);
}

@Override

protected void onPause() {


[Link]();
[Link](this);
}

Vous aimerez peut-être aussi