Android попахивает получай vcard правильно - PullRequest
1 голос
/ 07 марта 2012

Я разрабатываю Instant Messager в Android с smack 3.2.1 Когда я пытался получить аватар пользователя.Я обнаружил, что Vcard не содержит всю информацию, которую я могу видеть в XML.

Вот мой фрагмент кода:

    // From other post - add vCard with addIQProvider before connect to server
    ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", new VCardProvider());
    connection = new XMPPConnection(config);
    connection.connect();
    ...

            VCard card = new VCard();
            try
            {
                card.load(connection, "test@abc.com");


                Log.e(TAG, card.toString());
                /* return: <vCard xmlns='vcard-temp'><FN></FN></vCard>*/

                Log.e(TAG, card.getAvatarHash());
                /* exception - java.lang.NullPointerException: println needs a message */
            }
            catch(Exception e)
            {
                Log.e(TAG, "in exception");
                Log.e(TAG, e.toString());
            }

            Presence presence = roster.getPresence("test@abc.com");
            Log.e(TAG, presence.toXML());
            /* return: <presence to="peter@abc.com/Smack" from="test@abc.com/3e34cf2b"><show>xa</show>
            <x xmlns="vcard-temp:x:update">
              <photo>5455bf2f365065ffb59da7414ac9f83cbc850ef2</photo>
            </x><c xmlns="http://jabber.org/protocol/caps"></c></presence> */

Очевидно, присутствие .toXML () имеет аватарИнформация.

(1) Я добавил 'ProviderManager.getInstance (). AddIQProvider ("vCard", "vcard-temp", новый VCardProvider ());'Но почему я до сих пор не могу получить к нему доступ с помощью vCard?Я искал много сообщений, но все еще не могу найти решение.

(2) Это какой-нибудь пример получения аватара пользователя с помощью smack / asmack?

Спасибо

...