Question

Je travaille sur un client XMPP sur Android, en utilisant la bibliothèque Smack. La liste des choses / messagerie / présence est en cours d'exécution très bien. Cependant, je ne l'ai pas trouvé un moyen de stocker des informations de profil supplémentaire (userpicture, le nom de chiens, ...).

La seule façon que je vois de googler utilise VCards. Mais il ne fonctionnait tout simplement pas. J'ai essayé ce qui suit:

        VCard vCard = new VCard();
        vCard.load(connection);
        vCard.setEmailHome("meine_home@email.de");
        vCard.setLastName("Scheller");
        vCard.setField("blafasel", "asdf");
        vCard.save(connection);

Alors que je cherchais un moyen de voir que les informations VCard. Il n'a ni apparaître dans iChat, ni dans ce System.out:

        vCard.load(connection, user);
        System.out.println(user + " has this vCard: " + vCard.toXML());

Alors quelque chose allait mal, mais theres aucune indication ce qu'elle était. J'ai essayé avec le serveur de Google Talk et ma propre copie de openfire avec le même résultat. BTW, je suis en utilisant cette version de Smack: http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api-for-xmpp/

Qu'est-ce que je fais mal ici? Quelle est la bonne façon de stocker les informations relatives profil avec Smack?

Autres conseils

Vous pouvez utiliser le code suivant pour obtenir des informations.

VCard card = new VCard();
card.load(connection, "user@fqdn");
System.out.println("Voice: "+card.getPhoneHome("VOICE"));

essayez de définir une vCard pour cet utilisateur avec un autre client d'abord, et voir comment cela change vos résultats. Afin de diagnostiquer plus loin, vous devrez activer le débogage du protocole Smack (utilisation « -Dsmack.debugEnabled=true » sur une machine de bureau), et afficher les bits correspondants ici.

scroll top