Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 33
Accès aux services de localisation 325
Lorsque l’on n’a plus besoin des mises à jour, on appelle removeUpdates() avec le
LocationListener que l’on avait enregistré.
Est-on déjà arrivé ? Est-on déjà arrivé ?
Est-on déjà arrivé ?
Parfois, on veut savoir non pas où l’on se trouve ni même où l’on va, mais si l’on est là où
l’on voulait aller. Il pourrait s’agir d’une destination finale ou d’une étape dans un ensemble
de directions pour pouvoir indiquer le virage suivant, par exemple.
Dans ce but, LocationManager fournit la méthode addProximityAlert(), qui enregistre
un PendingIntent qui sera déclenché lorsque le terminal se trouvera à une certaine
distance d’un emplacement donné. La méthode addProximityAlert() attend les paramètres
suivants :
● La latitude et la longitude de la position qui nous intéresse.
● Un rayon précisant la proximité avec la position pour que l’intention soit levée.
● Une durée d’enregistrement en millisecondes – passée cette période, l’enregistrement
expirera automatiquement. Une valeur de –1 indique que l’enregistrement sera maintenu jusqu’à ce que vous le supprimiez manuellement via un appel à removeProximityAlert().
● Le PendingIntent qu’il faudra lever lorsque le terminal se trouve dans la "zone de tir"
définie par la position et le rayon.
Notez qu’il n’est pas garanti que vous receviez une intention s’il y a eu une interruption
dans les services de localisation ou si le terminal n’est pas dans la zone cible pendant le
temps où l’alerte de proximité est active. Si la position, par exemple, est trop proche du but
et que le rayon est un peu trop réduit, le terminal peut ne faire que longer le bord de la
zone cible ou y passer si rapidement que sa position ne sera pas enregistrée pendant qu’il
est dans la zone.
Il vous appartient de faire en sorte qu’une activité ou un récepteur d’intention réponde à
l’intention que vous avez enregistrée pour l’alerte de proximité. C’est également à vous de
déterminer ce qui doit se passer lorsque cette intention arrive : configurer une notification
(faire vibrer le terminal, par exemple), enregistrer l’information dans un fournisseur de
contenu, poster un message sur un site web, etc. Notez que vous recevrez l’intention à
chaque fois que la position est enregistrée et que vous êtes dans la zone ciblée – pas
simplement lorsque vous y entrez. Par conséquent, vous la recevrez plusieurs fois – le
nombre d’occurrences dépend de la taille de la zone et de la vitesse de déplacement du
terminal.
Livre Android.book Page 325 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 33
Accès aux services de localisation 325
Lorsque l’on n’a plus besoin des mises à jour, on appelle removeUpdates() avec le
LocationListener que l’on avait enregistré.
Est-on déjà arrivé ? Est-on déjà arrivé ?
Est-on déjà arrivé ?
Parfois, on veut savoir non pas où l’on se trouve ni même où l’on va, mais si l’on est là où
l’on voulait aller. Il pourrait s’agir d’une destination finale ou d’une étape dans un ensemble
de directions pour pouvoir indiquer le virage suivant, par exemple.
Dans ce but, LocationManager fournit la méthode addProximityAlert(), qui enregistre
un PendingIntent qui sera déclenché lorsque le terminal se trouvera à une certaine
distance d’un emplacement donné. La méthode addProximityAlert() attend les paramètres
suivants :
● La latitude et la longitude de la position qui nous intéresse.
● Un rayon précisant la proximité avec la position pour que l’intention soit levée.
● Une durée d’enregistrement en millisecondes – passée cette période, l’enregistrement
expirera automatiquement. Une valeur de –1 indique que l’enregistrement sera maintenu jusqu’à ce que vous le supprimiez manuellement via un appel à removeProximityAlert().
● Le PendingIntent qu’il faudra lever lorsque le terminal se trouve dans la "zone de tir"
définie par la position et le rayon.
Notez qu’il n’est pas garanti que vous receviez une intention s’il y a eu une interruption
dans les services de localisation ou si le terminal n’est pas dans la zone cible pendant le
temps où l’alerte de proximité est active. Si la position, par exemple, est trop proche du but
et que le rayon est un peu trop réduit, le terminal peut ne faire que longer le bord de la
zone cible ou y passer si rapidement que sa position ne sera pas enregistrée pendant qu’il
est dans la zone.
Il vous appartient de faire en sorte qu’une activité ou un récepteur d’intention réponde à
l’intention que vous avez enregistrée pour l’alerte de proximité. C’est également à vous de
déterminer ce qui doit se passer lorsque cette intention arrive : configurer une notification
(faire vibrer le terminal, par exemple), enregistrer l’information dans un fournisseur de
contenu, poster un message sur un site web, etc. Notez que vous recevrez l’intention à
chaque fois que la position est enregistrée et que vous êtes dans la zone ciblée – pas
simplement lorsque vous y entrez. Par conséquent, vous la recevrez plusieurs fois – le
nombre d’occurrences dépend de la taille de la zone et de la vitesse de déplacement du
terminal.
Livre Android.book Page 325 Dimanche, 8. novembre 2009 12:23 12
