Petite idée d’application rapide à faire mais que je n’ai pourtant pas le temps de développer en ce moment.

Il s’agit d’un client GTalk/Jabber avec la particularité de localiser les participants de la conversation.

Pour ce faire, l’application que nous nommerons HomeWork utilisera une petite particularité du protocole Jabber (que GTalk utilise). Il s’agit des ressources. Certains d’entre vous le savent sûrement, vous pouvez, contrairement à MSN, vous connecter depuis plusieurs endroits à la fois sans que cela vous déconnecte. Mieux, une fois la conversation engagée, vous ne reçevez les propos de votre interlocuteur que sur l’instance de connexion avec laquelle vous écrivez.

Comment cela marche-t-il ?

Lorsque vous vous connectez à Jabber, votre client vous déclare selon votre adresse suivie de votre ressource : electroma@android-after-all.fr/Maison ou electroma@android-after-all.fr/Cnam. Cette ressource fait parti intégrante de votre adresse au cours d’une conversation. Ainsi, lorsqu’on vous répond, on répond à votre adresse/VotreRessource ce qui explique que vos autres connexions ne reçoivent pas le message.

Dans le cas plus précis de GTalk, votre ressource est allouée automatiquement par GMail ou par GTalk selon que vous vous connectez avec l’un ou l’autre (voire les deux bien entendu).

Mais quel rapport avec la géolocalisation GSM ?

La géolocalisation GSM ne permet pas de vous localiser. Elle localise une station émettrice au moyen de son identifiant (appelé CellId et cela fonctionne aussi bien s’il s’agit de la votre ou de la personne à qui vous parlez sur GTalk.

Imaginons donc notre client HomeWork. Lorsque vous vous connectez, il affecte en ressource votre CellId et lorsque vous discutez, il récupère via getJid() la CellId de vos interlocuteurs en vous permettant d’afficher cette position sur la carte.